SCAN
Сканирование.
Функция сканирует массив и выдает промежуточные значения, применяя к каждому из них функцию LAMBDA. Возвращает массив промежуточных значений, полученных на каждом шаге.
Работа с массивами / Array
На русском
SCAN(начальное_значение, массив_или_диапазон, LAMBDA)
На английском
SCAN(initial_value, array_or_range, LAMBDA)
Пояснения:
SCAN(начальное_значение, массив_или_диапазон, LAMBDA)
начальное_значение
– начальное значение в сумматоре.массив_или_диапазон
– массив или диапазон, который необходимо просканировать.LAMBDA
– лямбда-функция, которая применяется к каждому значению в массиве или диапазоне с целью сканирования.LAMBDA(имя1, имя2, формула)
#N/A
. Эти аргументы относятся к сумматору и текущему значению в порядке следования. Что означает каждый аргумент:имя1
– определяет значение в сумматоре.имя2
– определяет текущие значения во входном массиве.SCAN
должен использоваться синтаксис LAMBDA
, т. е. ей должно быть назначено два тега аргумента.SCAN(5, A1:A3, LAMBDA(сумматор, текущее_значение, сумматор+текущее_значение))
SCAN(2, A1:A3, LAMBDA(сумматор, текущее_значение, сумматор*текущее_значение))
Пример данных:
Пример формулы: =SCAN(5, A1:A3, LAMBDA(сумматор, текущее_значение, сумматор+текущее_значение))
Результат:
9
11
12
Пример данных:
Пример формулы: =SCAN(0, A1:A3, LAMBDA(сумматор, текущее_значение, сумматор + текущее_значение/сумма(A1:A3)))
Результат:
0,57
0,85
1
Пример данных:
Пример формулы: =SCAN(0, A1:A6, RUNNING_TOTAL_0)
Именованная функция RUNNING_TOTAL_0
выводит промежуточную сумму массива и перезапускает расчет, когда текущее значение равняется 0.
Определение формулы: =if(текущее_значение=0, текущее_значение, сумматор+текущее_значение)
, где сумматор
и текущее_значение
– теги аргументов, назначенных функции RUNNING_TOTAL_0
.
Результат:
4
6
7
0
3
9
Если лямбда-функция не имеет ровно два аргумента "имя", возникает следующая ошибка:
"Неверное количество аргументов лямбда-функции: 2 вместо 3".
Пример: =SCAN(5, C1:C4, LAMBDA(текущее_значение, текущее_значение+1))
В этом примере для лямбда-функции задан только один аргумент "имя" при требуемых двух.
Если последний параметр функции SCAN не является лямбда-функцией, возникает следующая ошибка:
"Аргумент должен быть лямбда-функцией"
Пример: =SCAN(5, C1:C4, 3)
В этом примере последней функцией является 3
, а не лямбда-функция.
Если один или несколько аргументов "имя" недействительны, возникает следующая ошибка:
"Аргумент 1 лямбда-функции является недопустимым именем".
Пример: =SCAN(5, C1:C4, LAMBDA(C1, v, C1+v))
В этом примере С1
является недопустимым именем, поскольку конфликтует с диапазоном.
Если при применении лямбда-функции к входному массиву образуются неодиночные промежуточные значения, возникает следующая ошибка:
"Необходимо указать одиночное значение. Результаты из вложенных массивов не поддерживаются."
Пример: =SCAN(5, C1:C4, LAMBDA(сумматор, значение, {сумматор, значение}))
При каждом применении лямбда-функции должно создаваться одиночное промежуточное значение, но не еще один массив.
Google Sheets function list (на английском)
Список функций Google Таблиц (на русском)
Простой текст
Работает на Creatium