Excel и Google Workspace / Базовые формулы Excel

SCAN в Excel: вывести промежуточные аккумуляторы

SCAN применяет LAMBDA к элементам массива и возвращает все промежуточные аккумуляторы. Функция строит нарастающие итоги и помогает увидеть ход вычисления.

Опубликовано: Обновлено:

Формула

$$\texttt{=SCAN(0,A2:A4,LAMBDA(a,v,a+v))}$$
Схема Три поступления и нарастающий итог
Три поступления и нарастающий итогТри поступления и нарастающий итогСтрокаПоступлениеНакоплено15527123214Последний итог: 5 + 7 + 2 = 14

Начальный ноль не является отдельной строкой результата.

Обозначения

$0$
состояние до обработки первой строки, не применяется
$A2:A4$
столбец исходных значений, не применяется
$a$
накопленный итог до очередного элемента, единица исходных данных
$v$
очередное значение, единица исходных данных
$a+v$
новый накопленный итог, единица исходных данных

Условия применения

Microsoft указывает Microsoft 365 и Excel 2024 для Windows и Mac. Примеры используют английские имена функций с запятыми. Начальное значение задаётся явно. Для столбца входов нужен свободный столбец результатов той же высоты; порядок строк рассматривается как часть расчёта.

Ограничения

SCAN не сортирует события по времени и не восстанавливает пропуски. Перестановка строк меняет промежуточные итоги, даже если конечная сумма совпадёт. Начальный аккумулятор не добавляется отдельной первой ячейкой результата; возвращаются состояния после обработки каждого элемента.

Подробное объяснение

SCAN применяет правило LAMBDA последовательно и сохраняет результат каждого шага. Для столбца из трёх элементов получается столбец из трёх накопленных значений. Начальный аккумулятор используется при первом вычислении, но не занимает дополнительную строку результата.

В нарастающей сумме a означает сумму уже пройденных строк, а v — текущую прибавку. После обновления a+v получается итог с учётом новой строки. При явном начальном остатке он входит во все дальнейшие значения, что удобно для моделирования баланса.

Разница с REDUCE состоит в том, какие состояния возвращаются. При одинаковом старте, входах и правиле последний элемент SCAN совпадает с конечным результатом REDUCE. Однако остальные элементы позволяют проверить ход вычисления и локализовать первую неверную строку.

Порядок строк влияет на траекторию. Для прибавок 5,7,2 состояния равны 5,12,14, а для 7,5,2 — 7,12,14. Итоговая сумма одинакова, но промежуточные сведения различаются. Поэтому сортировку отчёта по времени выполняют до накопления, если нужен хронологический баланс.

Если операция меняется на умножение, обычно нужен старт один. Для текста началом может служить пустая строка. Тип и значение старта должны соответствовать телу LAMBDA. Ошибка разлива говорит о размещении результата, а не о правильности самого накопительного правила.

Как пользоваться формулой

  1. Упорядочьте строки по смыслу задачи, например по времени, до вычисления нарастающего состояния.
  2. Задайте стартовое значение и правило LAMBDA, которое из аккумулятора и текущей строки получает новый итог.
  3. Введите SCAN в свободную область и проверьте, что число результатов совпадает с числом входных элементов.
  4. Сверьте первое состояние вручную и последнее с независимым итогом или REDUCE с теми же аргументами.

Историческая справка

SCAN была представлена в наборе вспомогательных функций LAMBDA Microsoft в 2021 году. В программировании последовательное накопление с выдачей промежуточных результатов известно как операция сканирования или префиксного накопления. В таблицах похожие задачи прежде часто выражались цепочкой ссылок на предыдущую строку. SCAN делает правило обновления явным и возвращает всю последовательность одной динамической формулой. Современная документация описывает её через применение LAMBDA к значениям массива и сохранение каждого промежуточного результата. История функции относится к развитию языка Excel; она не означает, что Microsoft впервые предложила нарастающую сумму. Отличительная продуктовая возможность — использование произвольного правила состояния вместо одного заранее встроенного вида накопления.

Историческая линия формулы

SCAN в Excel реализует последовательное накопление с выдачей всех промежуточных состояний. Это продуктовая форма общей вычислительной идеи; конкретное поведение разлива, начального значения и параметров LAMBDA следует проверять по документации используемой версии Excel.

Пример

В A2:A4 записаны поступления 5,7,2 единицы. Требуется показать накопленный объём после каждой строки. Формула =SCAN(0,A2:A4,LAMBDA(a,v,a+v)) возвращает столбец [5;12;14]. Первый шаг 0+5=5, второй 5+7=12, третий 12+2=14. Размер разлива — три строки, а не четыре: начальный ноль не выводится отдельно. Проверка последнего значения обычной суммой даёт 5+7+2=14. Если перед началом уже было 10 единиц, замена старта на 10 дала бы [15;22;24]. Единица результата совпадает с единицей поступлений. Перестановка первых двух строк изменила бы первый накопленный показатель, поэтому порядок источника должен соответствовать задаче.

Частая ошибка

Не ожидайте единственную ячейку результата, как у числовой REDUCE. Не включайте старт отдельной строкой без явного дополнительного объединения. Не сортируйте готовые накопленные значения отдельно от исходных событий. Не используйте нулевой старт для произведения. Не игнорируйте занятые ячейки в области разлива.

Практика

Задачи с решением

Начальный остаток

Условие. Входы 5,7,2, старт 10, правило a+v. Найдите весь результат SCAN.

Решение. После первой строки 10+5=15, затем 15+7=22, затем 22+2=24.

Ответ. [15;22;24]

Накопленное произведение

Условие. Входы 2,3,4, старт 1, правило a*v. Найдите результаты.

Решение. Шаги 1·2=2, затем 2·3=6 и 6·4=24. Возвращаются все три состояния.

Ответ. [2;6;24]

Дополнительные источники

  • https://support.microsoft.com/en-us/excel/functions/scan-function
  • https://techcommunity.microsoft.com/blog/excelblog/announcing-lambda-helper-functions-lambdas-as-arguments-and-more/2576648

Связанные формулы

Excel и Google Workspace

REDUCE в Excel: получить один результат из массива

$\texttt{=REDUCE(0,A2:A4,LAMBDA(a,v,a+v\char94 2))}$

REDUCE последовательно применяет LAMBDA к элементам массива и возвращает один финальный аккумулятор. Это удобная основа для сумм, произведений и условных счётчиков.

Excel и Google Workspace

Сумма диапазона в Excel и Google Таблицах

$=SUM(A1:A10)$

Сумма диапазона в Excel и Google Таблицах: формула =SUM(A1:A10) помогает настроить рабочую формулу в таблице и проверить ссылки после копирования. В тексте есть условия, пример, ошибки и проверка результата.

Excel и Google Workspace

DROP в Excel: исключить строки и столбцы массива

$\texttt{=DROP(A1:C3,1,1)}$

DROP удаляет заданное число соседних строк или столбцов с начала или конца массива и возвращает оставшуюся прямоугольную часть. Исходный диапазон при этом не изменяется.