Вспомогательные функции ЛЯМБДА (LAMBDA) в Excel: MAP (MAP), REDUCE (REDUCE), SCAN (SCAN), BYROW (BYROW), BYCOL (BYCOL), MAKEARRAY (MAKEARRAY)
После внедрения функции ЛЯМБДА (LAMBDA) Microsoft представила набор мощных вспомогательных функций для работы с динамическими массивами. Эти инструменты — MAP (MAP), REDUCE (REDUCE), SCAN (SCAN), MAKEARRAY (MAKEARRAY), BYROW (BYROW), BYCOL (BYCOL) и ISOMITTED — кардинально расширяют возможности Excel для обработки данных, позволяя создавать сложные и эффективные вычисления без макросов.
Если вы разбираете формулы в Excel с нуля или хотите ускорить расчеты, здесь показано, как использовать функции в экселе на понятных и рабочих примерах.
Обзор новых функций ЛЯМБДА (LAMBDA)
Каждая из вспомогательных функций решает свою задачу в обработке диапазонов и массивов:
- MAP (MAP) — применяет ЛЯМБДА (LAMBDA) к каждой ячейке в массиве или диапазоне и возвращает массив того же размера.
- REDUCE (REDUCE) — выполняет ЛЯМБДА (LAMBDA) для каждой ячейки, используя переменную-аккумулятор, и возвращает одно итоговое значение.
- SCAN (SCAN) — комбинация MAP (MAP) и REDUCE (REDUCE): показывает промежуточные значения аккумулятора после каждого шага.
- MAKEARRAY (MAKEARRAY) — создает массив любого указанного размера, где каждая ячейка вычисляется по ЛЯМБДА (LAMBDA).
- BYROW (BYROW) — заставляет ЛЯМБДА (LAMBDA) вычисляться для каждой строки в диапазоне.
- BYCOL (BYCOL) — заставляет ЛЯМБДА (LAMBDA) вычисляться для каждого столбца в диапазоне.
- ISOMITTED — проверяет, был ли пропущен необязательный аргумент в ЛЯМБДА (LAMBDA).
Применение MAP (MAP) для обработки массивов
Функция MAP (MAP) выполняет расчет ЛЯМБДА (LAMBDA) для каждой ячейки в одном или нескольких диапазонах. Она идеально подходит для поэлементных операций.
Формула Русская версия: =ЛАО(B2:D6;B9:D13;КАЛБГА(A;B;УСЛОВИЯ(A="Clem";B;A="Andy";B/2;A="Bob";B/3)))English version: =MAP(B2:D6,B9:D13,LAMBDA(A,B,IFS(A="Clem",B,A="Andy",B/2,A="Bob",B/3))) принимает два массива одинакового размера (5x3) и возвращает результат тех же размеров, применяя логику УСЛОВИЯ / IFS к каждой паре ячеек.
Накопление значений с помощью REDUCE (REDUCE)
REDUCE (REDUCE) используется, когда нужно получить одно итоговое значение после обработки всех ячеек массива, например, для расчета общей суммы бонусов.
В формуле Русская версия: =РДГУВД(0;B2:D6;КАЛБГА(a;b;a+УСЛОВИЯ(b>2999;600;b>1999;100;ИСТИНА;0)))English version: =REDUCE(0,B2:D6,LAMBDA(a,b,a+IFS(b>,2999,600,b>,1999,100,TRUE,0))) начальное значение аккумулятора — 0. ЛЯМБДА (LAMBDA) перебирает ячейки диапазона B2:D6, добавляя к аккумулятору бонус в зависимости от объема продаж.
Отслеживание промежуточных результатов с SCAN (SCAN)
Функция SCAN (SCAN) аналогична REDUCE (REDUCE), но возвращает массив всех промежуточных значений аккумулятора, что полезно для анализа процесса вычислений.
Использование той же логики, что и в REDUCE (REDUCE), но в SCAN (SCAN), позволяет видеть, как рос бонусный фонд после каждой смены: Русская версия: =СВАМ(0;B2:D6;КАЛБГА(a;b;a+УСЛОВИЯ(b>2999;600;b>1999;100;ИСТИНА;0)))English version: =SCAN(0,B2:D6,LAMBDA(a,b,a+IFS(b>,2999,600,b>,1999,100,TRUE,0))).
Обработка по строкам и столбцам: BYROW (BYROW) и BYCOL (BYCOL)
Эти функции применяют указанную функцию (например, МАКС / MAX, СУММ / SUM) к каждой строке или столбцу диапазона, возвращая результаты в виде динамического массива.
Для поиска максимального значения в каждом столбце: Русская версия: =БЧВНК(A5:D11;MAX)English version: =BYCOL(A5:D11,MAX). Для поиска по строкам: Русская версия: =БЧРНХ(A5:D11;MAX)English version: =BYROW(A5:D11,MAX). Обратите внимание на использование Eta-ЛЯМБДА (Lambda) (МАКС / MAX вместо ЛЯМБДА (LAMBDA)(A,МАКС(A))).
Создание массивов с MAKEARRAY (MAKEARRAY)
MAKEARRAY (MAKEARRAY) — мощный инструмент для генерации массивов на основе заданных правил. Вы указываете количество строк и столбцов, а ЛЯМБДА (LAMBDA) определяет значение для каждой ячейки на основе ее позиции.
Пример формулы: Русская версия: =ЛАЙДАРРАЧ(B2;B3;КАЛБГА(r;c;2*r/c))English version: =MAKEARRAY(B2,B3,LAMBDA(r,c,2*r/c)), где r — номер строки, c — номер столбца новой ячейки.
Заключение и лучшие практики
Вспомогательные функции ЛЯМБДА (LAMBDA) открывают новый уровень автоматизации и сложных вычислений в Excel. Начните с MAP (MAP) для поэлементных операций, используйте REDUCE (REDUCE) и SCAN (SCAN) для агрегации с отслеживанием процесса, а BYROW (BYROW)/BYCOL (BYCOL) и MAKEARRAY (MAKEARRAY) — для преобразования структур данных. Освоение этих инструментов значительно повысит вашу эффективность при работе с динамическими массивами.