Функция REDUCE в Excel

Функция REDUCE в Excel применяет пользовательскую функцию LAMBDA к каждому элементу заданного массива и суммирует результаты до одного значения.

Что делает функция REDUCE в Excel?

Функция REDUCE в Excel позволяет уменьшить массив.

Возвращаемое значение

Одно значение.

Аргументы

  • initial_value — [необязательный] Начальное значение аккумулятора.
  • array — Массив, который нужно уменьшить.
  • lambda — применяемая пользовательская функция LAMBDA.

Синтаксис

= REDUCE ([initial_value], array, lambda)

Примечания по использованию

Функция REDUCE применяет пользовательскую функцию LAMBDA к каждому элементу заданного массива и суммирует результаты до одного значения. Функция REDUCE полезна, когда вы хотите обработать каждый элемент массива и вернуть один агрегированный результат.

Например, вы можете использовать функцию REDUCE для вычисления условных сумм и счетчиков, аналогично функциям SUMIFS и COUNTIFS, но с большей гибкостью. Кроме того, при использовании именованного LAMBDA с REDUCE логика может быть определена и управляться в одном месте и повторно использоваться в другом месте.

Функция REDUCE принимает три аргумента: initial_value, array и lambda. Начальное_значение — это начальное начальное значение, используемое для окончательного накопленного результата. Начальное_значение является необязательным. Массив — это массив, который необходимо уменьшить, а лямбда — это пользовательская функция LAMBDA, выполняемая над каждым элементом массива, которая в конечном итоге определяет окончательное значение, возвращаемое REDUCE.

Лямбда-структура

Расчет, выполняемый функцией REDUCE, определяется пользовательской функцией LAMBDA. Структура LAMBDA, используемая внутри REDUCE, выглядит следующим образом:

LAMBDA(a,b,calculation)

Первый аргумент, a, является аккумулятором. Аккумулятор начинается с начального_значения, предоставленного REDUCE, и изменяется по мере того, как функция REDUCE перебирает элементы в массиве и применяет вычисления. Аргумент b представляет значение каждого элемента в массиве. Расчет – это формула, которая генерирует окончательный накопленный результат.

Примеры

В приведенной ниже формуле REDUCE используется для суммирования всех значений в массиве:

=REDUCE(0,{1,2,3,4,5},LAMBDA(a,b,a+b)) // returns 15

В функции LAMBDA a — это начальное_значение, данное REDUCE (ноль), а b представляет отдельные элементы в массиве. LAMBDA запускается один раз для каждого элемента массива, и на каждой итерации текущее значение b добавляется в аккумулятор. REDUCE возвращает 15 в качестве окончательного результата после обработки всех элементов.

Суммируйте четные и нечетные числа

На показанном листе формула в D5 суммирует четные числа в диапазоне B5:B16:

=REDUCE(0,B5:B16,LAMBDA(a,b,IF(ISEVEN(b),a+b,a)))

Общая структура этой формулы такая же, как и исходная формула выше. Аргумент a является аккумулятором, заполненным значением, предоставленным в качестве начального_значения для REDUCE, а b представляет отдельные элементы в массиве. Разница заключается в вычислении внутри LAMBDA:

IF(ISEVEN(b),a+b,a)

Здесь функция IFиспользуется с функцией ISEVEN, чтобы сделать сумму условной. Значения в массиве добавляются в аккумулятор только в том случае, если они являются четными числами. Окончательный результат, возвращаемый REDUCE, равен 56.

Формула в D6 почти такая же:

=REDUCE(0,B5:B16,LAMBDA(a,b,IF(ISODD(b),a+b,a)))

Единственное отличие состоит в том, что вместо функции ISEVEN используется функция ISODD.

Автор А. Днепров

Обучаю основам работы с офисными программами.

Функция REDUCE в Excel
Как создать сразу несколько папок из Excel