REDUCE
Сократить.
Функция преобразует массив в накопленный результат путем применения к каждому значению лямбда-функции LAMBDA
.
Другими словами, функция REDUCE
используется для преобразования массива в единственное значение, используя заданную функцию. Функция, которую вы передаете в REDUCE
, применяется к каждому элементу массива по очереди, а результат каждого применения затем используется в следующем вызове функции, вместе со следующим элементом массива.
Работа с массивами / Array
На русском: команда не имеет эквивалента на русском языке.
REDUCE(начальное_значение; массив_или_диапазон; LAMBDA)
На английском
REDUCE(initial_value, array_or_range, LAMBDA)
Пояснения:
REDUCE(начальное_значение, массив_или_диапазон, LAMBDA)
начальное_значение
— начальное значение в сумматоре.массив_или_диапазон
— массив или диапазон, который необходимо преобразовать.LAMBDA
— лямбда-функция, которая применяется к каждому значению в массиве или диапазоне с целью преобразования.LAMBDA(имя1; имя2; формула)
#N/A
. Эти аргументы относятся к сумматору и текущему значению в порядке следования. Что означает каждый аргумент:
имя1
— определяет текущее значение в сумматоре.имя2
— определяет текущие значения во входном массиве.REDUCE
должен использоваться синтаксис LAMBDA
, т. е. ей должно быть назначено два тега аргумента.REDUCE(5; A1:A3; LAMBDA(сумматор; текущее_значение; сумматор+текущее_значение))
REDUCE(2; A1:A3; LAMBDA(сумматор; текущее_значение; сумматор*текущее_значение))
Точная задача: показать произведение всех элементов в A2:A4 и начального значения.
Иллюстрация использования функции REDUCE в Google Таблицах.
Формула из примера в ячейке B2
:
=REDUCE(5; A2:A4; LAMBDA(сумматор; текущее_значение; сумматор*текущее_значение))
Изначально сумматор
= 5
сумматор
= 5
После обработки ячейки A1:
сумматор
= (возвращаемое значение LAMBDA
)= 5*3= 15
сумматор
= 15
После обработки ячейки A2:
сумматор
= (возвращаемое значение LAMBDA
)= 15*2= 30
сумматор
= 30
После обработки ячейки A3:
сумматор
= (возвращаемое значение LAMBDA
)= 30*4= 120
Результат:
120
Точная задача: Прибавить все цены, которые больше 20 рублей или равные им.
Иллюстрация использования функции REDUCE в Google Таблицах. Прибавляем цены больше или равные 20 рублям
Формула из примера в ячейке B2
:
=REDUCE(0; A2:A5; LAMBDA(сумматор; цена; ЕСЛИ(цена>=20; сумматор + цена; сумматор)))
Точаная задача: Использование именованной функции в качестве лямбда-функции. Возврат конечной цены после ее поэтапного повышения на определенный процент
Пример данных:
Пример формулы: =REDUCE(C2,B1:B4,PRICE_INCREASE)
Именованная функция PRICE_INCREASE
выводит результат повышения цены на процентное значение из колонки B.
Определение формулы: =сумматор+сумматор*ячейка
, где сумматор
и ячейка
– теги аргументов, назначенных функции PRICE_INCREASE
.
Результат:
133,4
Точная задача: Использование именованной функции в качестве лямбда-функции с двумерным набором данных. Составление списка лучших сотрудников квартала с сохранением порядка строк.
Пример данных:
Именованная функция ADD_IF_NOT_PRESENT
добавляет значение выбранной строки в массив значений.
Определение функции: =IF(CONTAINS(новое_значение, существующие_значения), существующие_значения, {существующие_значения, новое_значение})
, где существующие_значения
и новое_значение
– теги аргументов, заданные в указанном порядке для функции ADD_IF_NOT_PRESENT
, а CONTAINS
– ещё одна именованная функция.
Пример формулы: =REDUCE({B2}, B2:E4, ADD_IF_NOT_PRESENT)
Результат:
Переданная лямбда-функция не имеет ровно два аргумента "имя"
Если лямбда-функция не имеет ровно два аргумента "имя", возникает следующая ошибка:
"Неверное количество аргументов лямбда-функции: 2 вместо 3".
Пример: =REDUCE(5, C1:C4, LAMBDA(текущее_значение, текущее_значение+1))
В этом примере для лямбда-функции задан только один аргумент "имя" при требуемых двух.
Последний параметр функции REDUCE не является лямбда-функцией
Если последний параметр функции REDUCE не является лямбда-функцией, возникает следующая ошибка:
"Аргумент должен быть лямбда-функцией".
Пример: =REDUCE(5, C1:C4, 3)
В этом примере последней функцией является 3
, а не лямбда-функция.
Лямбда-функция, переданная функции REDUCE, неверна
Если один или несколько аргументов "имя" недействительны, возникает следующая ошибка:
"Аргумент 1 лямбда-функции является недопустимым именем".
Пример: =REDUCE(5, C1:C4, LAMBDA(C1, v, C1+v))
В этом примере С1
является недопустимым именем, поскольку конфликтует с диапазоном.
MAP »
Google Sheets function list (на английском)
Список функций Google Таблиц (на русском)
Простой текст
Работает на Creatium