Получи случайную криптовалюту за регистрацию!

Продолжаем говорить про массивы. Некоторые формулы после отраб | Google Spreadsheets | Аналитика, автоматизации, Telegram-боты

Продолжаем говорить про массивы. Некоторые формулы после отработки "вписывают" в таблицу массив. Напр. этим любит заниматься функция FILTER(). Если в результате фильтрации будет больше одного значения - результатом будет массив. Массив будет стараться занять все необходимое ему место. Т.е. если в массиве 3 строки - 3 строки он и будет пытаться собой занять. Если ячейки будут заняты и массив не сможет найти для себя свободного пространства - он выдаст соответствующую ошибку.
Кстати про функцию фильтр. Если мы детально разберем из чего она состоит =FILTER (ВЫВОДИМЫЕ ЗНАЧЕНИЯ; УСЛОВИЕ ФИЛЬТРАЦИИ 1; УСЛОВИЕ ФИЛЬТРАЦИИ 2), то увидим, что каждый элемент формулы - это массив и нужно чтобы каждый массив имел одинаковую высоту или длину (иначе FILTER() выдаст ошибку).
Есть формулы, которые хорошо кушают массивы внутри фильтра. Например функция REGEXMATCH(), которая проверяет содержится ли кусок строки внутри ячейки вполне себе лояльно применяется поочередно к каждой строке, если использовать его внутри фильтра.
(напр. FILTER( ВЫВОДИМЫЕ ДАННЫЕ; REGEXMATCH(ДИАПАЗОН ФИЛЬТРАЦИИ1; ЧАСТЬ СТРОКИ ДЛЯ ПОИСКА)
Есть функции которым нужно помогать. Например функция МЕСЯЦ() не всегда корректно отрабатывает и ей нужно принудительно указать, что к данным внутри себя нужно относиться как к массивам. Для этого покрываем функцию МЕСЯЦ() функцией ARRAYFORMULA(). Важно! Результатом ARRRAYFORMULA() всегда является массив.
прим. В ГТ это делается куда интуитивнее чем в экселе.
Вернемся к заданию:
=UNIQUE({ C2:C9 , arrayformula(МЕСЯЦ(A2:A9))})
Т.о. в начале задания мы собираем массив, первый столбец которого это имя сейла (столбец С2:С9), а второй столбец - это столбец дата, к каждому значению которого была применена функция МЕСЯЦ(). Потом поверх всего этого была применена функция UNIQUE(), которая убирает все дубли строк.

Послесловие:
Когда мы собираем сложные и длинные формулы нам важно понимать что происходят в каждой из ее частей, где мы получаем значение, где мы получаем массив и что мы сможем с этим делать. Особенно это становится важно, когда мы начинаем перекидывать данные между таблицами с помощью функции импорта. Изначальный реестр может содержать в себе десятки тысяч строк и десятки столбцов данных, из которых нам может быть нужно только 2 столбца для написания функции ВПР (о ней в следующих постах). В таком случае нам лучше сформировать массив из двух импортируемых столбцов, чем импортировать весь гигантский реестр, для нагруженных таблиц это бывает (и довольно часто) критически важно.