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, с использованием именованной функции в качестве лямбда-функции

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

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

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

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

Результат:

4

 

 


6


7


0


3


9


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

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

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

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

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

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

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

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

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

  1. Лямбда-функция, переданная функции SCAN, неверна
  2. Если один или несколько аргументов "имя" недействительны, возникает следующая ошибка:

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

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

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

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

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

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

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

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

  • Функция LAMBDA – позволяет создать специальную функцию с набором имен и формулой, в которой они используются.
  • Функция MAP – сопоставляет каждое значение в выбранных массивах с новым значением.
  • Функция REDUCE – преобразует массив в накопленный результат.
  • Функция MAKEARRAY – рассчитывает и создает массив указанного размера.

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

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

MAP »

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

Источники

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

Logo Upline Studio Creatium

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

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

Работает на Creatium