Вспомогательные функции ЛЯМБДА (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 для обработки данных, позволяя создавать сложные и эффективные вычисления без макросов.
Обзор новых функций ЛЯМБДА (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) для каждой ячейки в одном или нескольких диапазонах. Она идеально подходит для поэлементных операций.
Формула =MAP(Б2:Г6,Б9:Г13,ЛЯМБДА(A,B,УСЛОВИЯ(A="Clem",B,A="Andy",B/2,A="Bob",B/3))) (=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) используется, когда нужно получить одно итоговое значение после обработки всех ячеек массива, например, для расчета общей суммы бонусов.
В формуле =REDUCE(0,Б2:Г6,ЛЯМБДА(a,b,a+УСЛОВИЯ(b>2999,600,b>1999,100,ИСТИНА,0))) (=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), позволяет видеть, как рос бонусный фонд после каждой смены: =SCAN(0,Б2:Г6,ЛЯМБДА(a,b,a+УСЛОВИЯ(b>2999,600,b>1999,100,ИСТИНА,0))) (=SCAN(0,B2:D6,LAMBDA(a,b,a+IFS(b>2999,600,b>1999,100,TRUE,0)))).
Обработка по строкам и столбцам: BYROW (BYROW) и BYCOL (BYCOL)
Эти функции применяют указанную функцию (например, МАКС (MAX), СУММ (SUM)) к каждой строке или столбцу диапазона, возвращая результаты в виде динамического массива.
Для поиска максимального значения в каждом столбце: =BYCOL(А5:Г11,МАКС) (=BYCOL(A5:D11,MAX)). Для поиска по строкам: =BYROW(А5:Г11,МАКС) (=BYROW(A5:D11,MAX)). Обратите внимание на использование Eta-ЛЯМБДА (Lambda) (МАКС (MAX) вместо ЛЯМБДА (LAMBDA)(A,МАКС (Max)(A))).
Создание массивов с MAKEARRAY (MAKEARRAY)
MAKEARRAY (MAKEARRAY) — мощный инструмент для генерации массивов на основе заданных правил. Вы указываете количество строк и столбцов, а ЛЯМБДА (LAMBDA) определяет значение для каждой ячейки на основе ее позиции.
Пример формулы: =MAKEARRAY(Б2,Б3,ЛЯМБДА(r,c,2*r/c)) (=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) — для преобразования структур данных. Освоение этих инструментов значительно повысит вашу эффективность при работе с динамическими массивами.