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(сумматор, текущее_значение, сумматор*текущее_значение))
Показать произведение всех элементов в A1:A3 и начального значения.
Пример данных:
Пример формулы: =REDUCE(5, A1:A3, LAMBDA(сумматор, текущее_значение, сумматор*текущее_значение))
Как это работает
Изначально сумматор
= 5
1. Обработка ячейки A1:
сумматор
= 5
После обработки ячейки A1:
сумматор
= (возвращаемое значение LAMBDA
)= 5*3= 15
2. Обработка ячейки A2:
сумматор
= 15
После обработки ячейки A2:
сумматор
= (возвращаемое значение LAMBDA
)= 15*2= 30
3. Обработка ячейки A3:
сумматор
= 30
После обработки ячейки A3:
сумматор
= (возвращаемое значение LAMBDA
)= 30*4= 120
Результат:
120
Прибавить все цены, большие или равные 20 рублям
Пример данных:
Пример формулы: =REDUCE(0, A1:A4, LAMBDA(сумматор, цена, if(цена>=20, сумматор + цена, сумматор)))
Результат:
100 руб.
Возврат конечной цены после ее поэтапного повышения на определенный процент
Пример данных:
Пример формулы: =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(5, C1:C4, 3)
В этом примере последней функцией является 3
, а не лямбда-функция.
Если один или несколько аргументов "имя" недействительны, возникает следующая ошибка:
"Аргумент 1 лямбда-функции является недопустимым именем".
Пример: =REDUCE(5, C1:C4, LAMBDA(C1, v, C1+v))
В этом примере С1
является недопустимым именем, поскольку конфликтует с диапазоном.
Google Sheets function list (на английском)
Список функций Google Таблиц (на русском)
Простой текст
Работает на Creatium