Другие функции для работы с массивами, появившиеся в 2022 году
Файл с примерами: ВЗЯТЬ и другие функции для работы с массивами.xlsx Помимо VSTACK и HSTACK, в 2022 году в Excel (и Google Таблицах тоже) появились и другие функции для обработки массивов.
Функции TAKE / ВЗЯТЬ и СБРОСИТЬ / DROP
Функция ВЗЯТЬ / TAKE извлекает заданное количество столбцов или строк из массива:
=ВЗЯТЬ(массив;; сколько строк получить; [сколько столбцов получить])
В частном случае можно вытаскивать не только строки или столбцы, но и значения (если на входе задан одномерный массив).
Например, если нам нужны первые 10 значений в столбце таблицы, будет такая формула (в общем виде):
=ВЗЯТЬ(Таблица[Столбец]; 10)
А если нужны последние, а не первые? Прелесть в том, что функция умеет и так — просто укажите отрицательное количество строк в ее аргументе:
=ВЗЯТЬ(Таблица[Столбец]; -10)
Если нужна сумма последних 10, то добавим сверху функцию СУММ / SUM: =СУММ(ВЗЯТЬ(Таблица[Столбец]; -10))
Теперь формула всегда будет возвращать сумму значений из 10 последних строк таблицы из выбранного столбца, даже когда будут добавляться новые строки.
СБРОСИТЬ убирает из массива заданное число строк и столбцов из начала (положительный аргумент) или конца (отрицательный):
=СБРОСИТЬ(массив; сколько строк убрать; [сколько столбцов убрать])
Например, если мы хотим сумму без первых трех (по порядку) значений:
=СУММ(СБРОСИТЬ(Сделки[Сумма];3))
Функции TOROW / ПОСТРОК и TOCOL / ПОСТОЛБЦ
Эти функции делают массив плоским — в одну строку или в один столбец соответственно. Можно превратить несколько столбцов в один вертикальный или горизонтальный список.
А дальше можно обрабатывать этот список: например, получить список уникальных значений, без повторов — с помощью функции УНИК / UNIQUE:
=УНИК(ПОСТОЛБЦ(диапазон))
И таким образом мы получим список спикеров (без повторов), хотя изначально это три отдельных столбца, и к ним функцию УНИК применять для решения этой задачи было бесполезно (возвращались бы уникальные строки, а не значения).
WRAPROWS / СВЕРНСТРОК и WRAPCOLS / СВЕРНСТОЛБЦ
Эти функции делают обратную операцию — превращают плоский массив в двумерный. Бывает полезно, чтобы исправить какую-нибудь выгрузку в виде списка и получить ее в табличном виде.
Первый аргумент этих функций — собственно массив (список), а второй (он называется wrap_count) — сколько строк или столбцов нужно получить на выходе:
=СВЕРНСТОЛБЦ(массив; число строк)
В следующем примере мы превращаем список (те же данные, что и в предыдущем примере), в котором каждые 4 строки — это время и три фамилии, в таблицы. В случае со СВЕРНСТОЛБЦ в ней будет 4 строки, в случае со СВЕРНСТРОК — 4 столбца. Второй аргумент обеих функций — 4 (это цикличность наших данных).
CHOOSEROWS / ВЫБОРСТРОК и CHOOSECOLS / ВЫБОРСТОЛБЦ
Эти функции извлекают заданные (по номерам) строки или столбцы из массива. То есть можно извлечь, например, первый и седьмой столбец. Или извлечь весь массив, поменяв порядок столбцов:
=ВЫБОРСТРОК(массив; номер первой извлекаемой строки; номер второй; …)
Давайте извлечем первую и последнюю строку из таблицы. Первая — это первая, вторым аргументом функции ВЫБОРСТРОК можно задать единицу. А чтобы получать номер последней на данный момент строки, можно посчитать число значений с помощью функции СЧЁТЗ / COUNTA:
=ВЫБОРСТРОК(Название таблицы;1;СЧЁТЗ(Столбец из таблицы для подсчета значений))
EXPAND / РАЗВЕРНУТЬ
Эта функция увеличивает массив, добавляя к исходному массиву (диапазону) какое-то заданное значение:
=РАЗВЕРНУТЬ (исходный массив, число строк в новом массиве, число столбцов, чем заполнить)
Если последний аргумент не задать, то новые значения будут ошибками #H/Д (#N/A).
В следующем примере мы также делаем новый массив размерами 3 × 3 (то есть добавляем к исходному из диапазона A1:B2 одну строку и один столбец), но новые значения задаем как нули.