Уменьшает массив до накопленного значения, применяя ЛЯМБДА к каждому значению и возвращая общее значение в аккумулятор.
Синтаксис
=REDUCE([initial_value], array, lambda(accumulator, value, body))
Аргументы и параметры функции REDUCE:
-
[начальное_значение] Задает начальное значение для аккумулятора.
-
массив. Массив, который нужно сократить.
-
лямбда. Функция ЛЯМБДА, вызываемая для создания массива. ЛЯМБДА принимает три параметра:
-
аккумулятор. Суммируемое значение, возвращаемое в качестве конечного результата.
-
значение Текущее значение из массива.
-
Тела Вычисление, применяемое к каждому элементу в массиве.
-
Заметки
Используйте аргумент "начальное_значение", чтобы установить начальное значение для параметра аккумулятора. В примере 2, где вы умножаете аккумулятор, установите значение 1, чтобы избежать умножения на 0.
Ошибки
При указании недопустимой функции ЛЯМБДА или неверного количества параметров возвращается ошибка #ЗНАЧ! с названием "Неверные параметры".
Примеры
Пример 1. Суммирование значений в квадрате
Введите пример данных в ячейки A1:C2, а затем скопируйте формулу в ячейку D4:
=REDUCE(, A1:C2, LAMBDA(a,b,a+b^2))
Пример 2. Создание настраиваемой функции "PRODUCTIF" для умножения только значений больше 50
Create таблицу с именем Table3 с одним столбцом nums, начиная с ячейки E1. В ячейку G2 скопируйте следующую формулу:
=REDUCE(1,Table3[nums],LAMBDA(a,b,IF(b>50,a*b,a)))
Пример 3. Подсчет только ровных значений
Создайте таблицу с именем "Table4" с одним столбцом с именем Nums, начиная с ячейки D1. В ячейку F2 скопируйте следующую формулу:
=REDUCE(0,Table4[Nums],LAMBDA(a,n,IF(ISEVEN(n),1+a, a)))