1. Главная страница
  2. ››
  3. Формулы
  4. ››
  5. SCAN • сканируем - Upline Studio

SCAN • сканируем - Upline Studio

Команда

SCAN

Перевод на русский

Сканирование.

Описание

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

Тип функции

Работа с массивами / Array

Синтаксис

На русском: команда не имеет эквивалента на русском языке.

SCAN(начальное_значение; массив_или_диапазон; LAMBDA)
Замечание для новичков
Выбор запятой или точки c запятой между аргументами формулы определяется не тем, на каком языке записана команда, а языковой версией Google Таблиц как таковых. Если у вас русскоязычные Google Таблицы, то команду вы можете записать и на русском, и на английском языке — Google Таблицы её просто сами переведут. Но вот разделителем должна быть точка с запятой, иначе вы получите синтаксическую ошибку.

На английском

SCAN(initial_value, array_or_range, LAMBDA)

Пояснения:

SCAN(начальное_значение, массив_или_диапазон, LAMBDA)

  • начальное_значение – начальное значение в сумматоре.
  • массив_или_диапазон – массив или диапазон, который необходимо просканировать.
  • LAMBDA – лямбда-функция, которая применяется к каждому значению в массиве или диапазоне с целью сканирования.
    • СинтаксисLAMBDA(имя1, имя2, формула)
    • Требования:
      • Лямбда-функция должна иметь ровно два аргумента "имя", а также формулу, в которой эти имена используются. При применении лямбда-функции аргумент "имя1" определяет текущее значение в сумматоре, а аргумент "имя2" определяет текущие значения в массиве или диапазоне. На каждом этапе сумматор обновляется до промежуточного значения, полученного на предыдущем этапе.

Примечания

  • Переданная лямбда-функция должна принимать ровно два аргумента "имя", в противном случае возникает ошибка #N/A. Эти аргументы относятся к сумматору и текущему значению в порядке следования. Что означает каждый аргумент:
    • имя1 – определяет значение в сумматоре.
    • имя2 – определяет текущие значения во входном массиве.
  • Сумматор запускается с начальным значением и на каждом этапе обновляется до промежуточного значения, полученного на предыдущем этапе.
  • Пока применяется лямбда-функция, текущие значения во входном массиве определяются построчно.
  • Именованная функция может выступать в качестве параметра лямбда-функции и в этом случае обладает всеми ее свойствами. Подробнее об именованных функциях
    • При наличии именованной функции для функции SCAN должен использоваться синтаксис LAMBDA, т. е. ей должно быть назначено два тега аргумента.
    • После именованной функции не должно быть круглых скобок.

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

SCAN(5, A1:A3, LAMBDA(сумматор, текущее_значение, сумматор+текущее_значение))

SCAN(2, A1:A3, LAMBDA(сумматор, текущее_значение, сумматор*текущее_значение))

Примеры решения задач

Промежуточная сумма массива

Точная задача: вернуть промежуточную сумму массива

Иллюстрация использования функции SCAN в Google Таблицах. П**ромежуточная сумма массива.**

Иллюстрация использования функции SCAN в Google Таблицах. Промежуточная сумма массива.

Формула из примера в ячейке B2: 

= =SCAN(5; A2:A4; LAMBDA(сумматор; текущее_значение; сумматор+текущее_значение))+текущее_значение))

Возврат суммарного процента общего значения

Иллюстрация использования функции SCAN в Google Таблицах.  C**уммарный процент.**

Иллюстрация использования функции SCAN в Google Таблицах. Cуммарный процент.

Формула из примера в ячейке B2

=SCAN(0; A2:A4; LAMBDA(сумматор; текущее_значение; сумматор + текущее_значение / СУММ (A2:A4)))




Использование именной функции

Точная задача: возврат промежуточной суммы массива и перезапуск расчета, когда число равняется 0, с использованием именованной функции в качестве лямбда-функции

Создать английскую копию

Пример данных:

screenshot01

Пример формулы: =SCAN(0, A1:A6, RUNNING_TOTAL_0)

Именованная функция RUNNING_TOTAL_0 выводит промежуточную сумму массива и перезапускает расчет, когда текущее значение равняется 0.

Определение формулы: =if(текущее_значение=0, текущее_значение, сумматор+текущее_значение), где сумматор и текущее_значение – теги аргументов, назначенных функции RUNNING_TOTAL_0.

Результат:

4


6


7


0


3


9


Распространенные ошибки

  1. Переданная лямбда-функция не имеет ровно два аргумента "имя"

    Если лямбда-функция не имеет ровно два аргумента "имя", возникает следующая ошибка:

    "Неверное количество аргументов лямбда-функции: 2 вместо 3".

    Пример: =SCAN(5, C1:C4, LAMBDA(текущее_значение, текущее_значение+1))

    В этом примере для лямбда-функции задан только один аргумент "имя" при требуемых двух.

  2. Последний параметр функции SCAN не является лямбда-функцией

    Если последний параметр функции SCAN не является лямбда-функцией, возникает следующая ошибка:

    "Аргумент должен быть лямбда-функцией"

    Пример: =SCAN(5, C1:C4, 3)

    В этом примере последней функцией является 3, а не лямбда-функция.

  3. Лямбда-функция, переданная функции SCAN, неверна

    Если один или несколько аргументов "имя" недействительны, возникает следующая ошибка:

    "Аргумент 1 лямбда-функции является недопустимым именем".

    Пример: =SCAN(5, C1:C4, LAMBDA(C1, v, C1+v))

    В этом примере С1 является недопустимым именем, поскольку конфликтует с диапазоном.

  4. Одно или несколько промежуточных значений, полученных путем применения лямбда-функции, не являются одиночными значениями

    Если при применении лямбда-функции к входному массиву образуются неодиночные промежуточные значения, возникает следующая ошибка:

    "Необходимо указать одиночное значение. Результаты из вложенных массивов не поддерживаются."

    Пример: =SCAN(5, C1:C4, LAMBDA(сумматор, значение, {сумматор, значение}))

    При каждом применении лямбда-функции должно создаваться одиночное промежуточное значение, но не еще один массив.

Сопутствующие функции

Другие функции Google Таблиц

Список функций

Другие примеры именованных функций

MAKEARRAY »

MAP »

REDUCE » преобразует массив в накопленный результат.

Источники

Google Sheets function list (на английском)

Список функций Google Таблиц (на русском)

Функция SCAN

Logo Upline Studio Creatium

Наша команда Uplinestudio разрабатывает сайты под разные потребности клиентов. Одним из ключевых направлений в нашей разработке является создание сайтов на Creatium.

Оставить заявку

Работает на Creatium