Формулы с нарастающим итогом в excel

Способ 1. Формулы

Начнём, для разогрева, с наиболее простого варианта — формул. Если мы имеем на входе небольшую отсортированную по дате таблицу, то для расчёта нарастающего итога в отдельном столбце нам потребуется элементарная формула:

Нарастающие итоги формулой в Excel

Основная фишка тут в хитром закреплении диапазона внутри функции СУММ — ссылка на начало диапазона делается абсолютной (со знаками доллара), а на конец — относительной (без долларов). Соответственно, при копировании формулы вниз на весь столбец мы получаем растягивающийся диапазон, сумму которого и считаем.

Минусы такого подхода очевидны:

  • Таблица обязательно должна быть отсортирована по дате.
  • При добавлении новых строк с данными формулу придётся допротягивать вручную.

Способ 2. Сводная таблица

Этот способ чуть сложнее, но гораздо приятнее. Причём для усугубления давайте рассмотрим задачку посерьезнее — таблицу из 2000 строк с данными, где по столбцу даты нет сортировки, зато есть повторы (т.е. мы можем несколько раз продать в один и тот же день):

Исходные данные для сводной

Конвертируем нашу исходную таблицу в «умную» (динамическую) сочетанием клавиш Ctrl+T или командой Главная — Форматировать как таблицу (Home — Format as Table), а затем строим по ней сводную таблицу командой Вставка — Сводная таблица (Insert — Pivot Table). В область строк в сводной закидываем дату, а в область значений — число проданных товаров:

Строим сводную

Обратите внимание, что если у вас не совсем старая версия Excel, то даты автоматически сгруппируются по годам, кварталам и месяцам. Если вам нужна другая группировка (или она совсем не нужна), то это можно исправить, щёлкнув правой кнопкой мыши по любой дате и выбрав команды Группировать / Разгруппировать (Group / Ungroup).

Если хочется видеть одновременно и получившиеся итоги по периодам и нарастающий итог в отдельном столбце, то имеет смысл закинуть в область значений поле Продано ещё раз, чтобы получить дубликат поля — в нём мы и включим отображение нарастающих итогов. Для этого щёлкните правой кнопкой мыши по полю и выберите команду Дополнительные вычисления — Нарастающий итог (Show Values as — Running Totals):

Переключаем поле в режим нарастающих итогов

Там же можно выбрать и вариант нарастающих итогов в процентах, а в следующем окне нужно выбрать поле, по которому пойдет накопление — в нашем случае это поле даты:

Нарастающий итог в шт и % в сводной таблице

Плюсы такого подхода:

  • Быстро считается большой объем данных.
  • Не нужно вводить вручную никаких формул.
  • При изменении в исходных данных достаточно обновить сводную правой кнопкой мыши или командой Данные — Обновить всё (Data — Refresh All).

Минусы же вытекают из того, что это сводная, а значит вытворять в ней всё, что вздумается (вставлять строки, писать формулы, строить любые диаграммы и т.д.) уже не получится.

Способ 3. Запрос Power Query

Загрузим нашу «умную» таблицу с исходными данными в редактор запросов Power Query, используя команду Данные — Из таблицы / диапазона (Data — From Table/Range). В последних версиях Excel её, кстати, переименовали — теперь она называется С листа (From Sheet):

Загружаем данные в Power Query

Затем выполним следующие шаги:

1. Отсортируем таблицу по возрастанию по столбцу даты командой Сортировать по возрастанию в выпадающем списке фильтра в шапке таблицы.

2. Чуть позже для подсчета нарастающего итога нам потребуется вспомогательный столбец с порядковым номером строки. Добавим его командой Добавление столбца — Столбец индекса — От 1 (Add column — Index column — From 1).

3. Также для подсчёта нарастающего итога нам потребуется ссылка на столбец Продано, где лежат наши суммируемые данные. В Power Query столбцы ещё называются списками (list) и чтобы получить ссылку на него, щёлкнем правой кнопкой мыши по заголовку столбца и выберем команду Детализация (Show detail). В строке формул появится нужное нам выражение, состоящее из имени предыдущего шага #»Добавлен индекс», откуда мы берём таблицу и имени столбца [Продано] из этой таблицы в квадратных скобках:

Ссылка на нужный столбец-список в Power Query

Копируем это выражение в буфер для дальнейшего использования.

4. Удаляем ненужный более последний шаг Продано и добавляем вместо него вычисляемый столбец для подсчета нарастающего итога командой Добавление столбца — Настраиваемый столбец (Add column — Custom column). Нужная нам формула будет выглядеть так:

Добавляем вычисляемый столбец для нарастающего итога

Здесь функция List.Range берёт исходный список (столбец [Продано]) и извлекает из него элементы, начиная с первого (в формуле это 0, т.к. нумерация в Power Query начинается с нуля). Количество извлекаемых элементов — это номер строки, который мы берём из столбца [Индекс]. Таким образом, эта функция для первой строки возвращает только одну первую ячейку столбца Продано. Для второй строки — уже первых две ячейки, для третьей — первых три и т.д.

Ну, а затем функция List.Sum суммирует извлечённые значения и мы получаем в каждой строке сумму всех предыдущих элементов, т.е. нарастающий итог:

Готовый нарастающий итог в Power Query

Осталось удалить ненужный нам больше столбец Индекс и выгрузить результаты обратно в Excel командой Главная — Закрыть и загрузить (Home — Close&Load to).

Задача решена.

Форсаж

В принципе, на этом можно было бы и остановиться, но есть небольшая ложка дёгтя — созданный нами запрос работает со скоростью черепахи. Для примера, на моем не самом слабом ПК таблица всего в 2000 строк обрабатывается 17 секунд. А если данных будет больше?

Для ускорения можно использовать буферизацию при помощи специальной функции List.Buffer, которая загружает заданный ей в качестве аргумента список (list) в оперативную память, что сильно ускоряет обращение к нему в дальнейшем. В нашем случае имеет смысл буферизовать список #»Добавлен индекс»[Продано], к которому Power Query вынужден обращаться при расчёте нарастающего итога в каждой строке нашей 2000-строчной таблицы.

Для этого в редакторе Power Query на Главной вкладке жмём кнопку Расширенный редактор (Home — Advanced Editor), чтобы открыть исходный код нашего запроса на встроенном в Power Query языке М:

Исходный код запроса

А затем добавляем туда строку с переменной MyList, значение которой возвращает функция буферизации и подменяем на следующем шаге обращение к списку на эту переменную:

Буферизованный запрос

После внесения таких изменений наш запрос станет существенно резвее и справится с 2000-строчной таблицей всего за 0.3 секунды!

Другое дело, правда? :)

Ссылки по теме

  • Диаграмма Парето (80/20) и как построить её в Excel
  • Поиск ключевых слов в тексте и буферизация запроса в Power Query

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Еще…Меньше

С помощью набегаемого итога можно просмотреть значения элементов в ячейках при вводе новых элементов и значений с течением времени. Чтобы вычислить набегаю итог, воспользуйтесь следующей процедурой:

  1. Настройка таблицы, как в примере ниже.

    Чтобы этот пример проще было понять, скопируйте его на пустой лист.

    Копирование примера

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

    2. Выделите пример в разделе справки.

      Примечание: Не выделяйте заголовки строк или столбцов.

      Выделите образец данных

    3. Нажмите клавиши CTRL+C.

    4. Выделите на листе ячейку A1 и нажмите клавиши CTRL+V.

    5. Чтобы переключиться между просмотром результатов и просмотром формул, возвращающих эти результаты, нажмите клавиши CTRL+` (знак ударения) или на вкладке Формулы в группе Зависимости формул нажмите кнопку Показывать формулы.

      A

      B

      C

      D

      E

      1

      Системная дата

      Product

      Quantity

      Формула

      Running Total

      2

      2 января

      Пляжевая игрушек

      5

      =СУММ($C$2:$C 2)

      5

      3

      2 января

      Солнцезащитные очки

      3

      =СУММ($C$2:$C 3)

      8

      4

      3 января

      Пляжевая игрушек

      9

      =СУММ($C$2:$C 4)

      17

      5

      3 января

      Солнцезащитные очки

      8

      =СУММ($C$2:$C 5)

      25

      6

      3 января

      Набор «Колебание»

      1

      =СУММ($C$2:$C 6)

      26

      7

      4 января

      Пляжевая игрушек

      6

      =СУММ($C$2:$C 7)

      32

      8

      4 января

      Солнцезащитные очки

      4

      =СУММ($C$2:$C 8)

      36

      9

      5 января

      Пляжевая игрушек

      11

      =СУММ($C$2:$C 9)

      47

      10

      5 января

      Песочнице

      1

      =СУММ($C$2:$C 10)

      48

      11

      5 января

      Солнцезащитные очки

      5

      =СУММ($C$2:$C 11)

      53

      12

      5 января

      Набор «Колебание»

      2

      =СУММ($C$2:$C 12)

      55

      При внимательном взгляде на формулы в столбце D вы увидите, что первая часть диапазона является абсолютной ссылкой (перед столбцом и строкой стоит символ $), а во второй части диапазона есть смешанная ссылка (перед столбцом стоит символ $). Таким образом, формула будет работать как набегающий итог при копировании в смежные строки.

  2. Чтобы сохранить суммарный итог, добавьте строку для каждой новой записи и скопируйте формулу из столбца D в эту строку.

    Вводить или копировать формулу вручную в каждой строке не нужно. Например, можно ввести формулу только в ячейку D2. Затем просто скопируйте формулу в другие строки, содержащие данные, перетащив его в ячейку D13.

Примечание: Сумма с нарастающем итоге отличается от нарастающем балансе, при котором сумма значений возрастает или сжимается (например, регистрируется в книге) при добавлении новых записей.

  1. Настройка таблицы, как в примере ниже.

    Чтобы этот пример проще было понять, скопируйте его на пустой лист.

    Копирование примера

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

    2. Выделите пример в разделе справки.

      Примечание: Не выделяйте заголовки строк или столбцов.

      Выделите образец данных

    3. Нажмите COMMAND+C.

    4. Выберем ячейку A1 на COMMAND+V.

    5. Чтобы переключиться между просмотром результатов и просмотром формул, возвращающих результаты, нажмите клавиши CONTROL+’ (ударение) или на вкладке Формулы в группе Зависимости формул нажмите кнопку Показать формулы.

      A

      B

      C

      D

      E

      1

      Системная дата

      Product

      Quantity

      Формула

      Running Total

      2

      2 января

      Пляжевая игрушек

      5

      =СУММ($C$2:$C 2)

      5

      3

      2 января

      Солнцезащитные очки

      3

      =СУММ($C$2:$C 3)

      8

      4

      3 января

      Пляжевая игрушек

      9

      =СУММ($C$2:$C 4)

      17

      5

      3 января

      Солнцезащитные очки

      8

      =СУММ($C$2:$C 5)

      25

      6

      3 января

      Набор «Колебание»

      1

      =СУММ($C$2:$C 6)

      26

      7

      4 января

      Пляжевая игрушек

      6

      =СУММ($C$2:$C 7)

      32

      8

      4 января

      Солнцезащитные очки

      4

      =СУММ($C$2:$C 8)

      36

      9

      5 января

      Пляжевая игрушек

      11

      =СУММ($C$2:$C 9)

      47

      10

      5 января

      Песочнице

      1

      =СУММ($C$2:$C 10)

      48

      11

      5 января

      Солнцезащитные очки

      5

      =СУММ($C$2:$C 11)

      53

      12

      5 января

      Набор «Колебание»

      2

      =СУММ($C$2:$C 12)

      55

      При внимательном взгляде на формулы в столбце D вы увидите, что первая часть диапазона является абсолютной ссылкой (перед столбцом и строкой стоит символ $), а во второй части диапазона есть смешанная ссылка (перед столбцом стоит символ $). Таким образом, формула будет работать как набегающий итог при копировании в смежные строки.

  2. Чтобы сохранить суммарный итог, добавьте строку для каждой новой записи и скопируйте формулу из столбца D в эту строку.

    Вводить или копировать формулу вручную в каждой строке не нужно. Например, можно ввести формулу только в ячейку D2. Затем просто скопируйте формулу в другие строки, содержащие данные, перетащив его в ячейку D13.

Примечание: Сумма с нарастающем итоге отличается от нарастающем балансе, при котором сумма значений возрастает или сжимается (например, регистрируется в книге) при добавлении новых записей.

Нужна дополнительная помощь?


Используем смешанную алресацию для для создания столбца с суммированием нарастающим итогом.

Пусть дана таблица продаж товара по месяцам (см.

файл примера

).

В соседнем столбце будем суммировать продажи нарастающим итогом. Для этого в ячейке

С2

введем формулу

=СУММ($B$2:B2)

и скопируем ее вниз

Маркером заполнения

. Обратите внимание, что в формуле использована

абсолютная и относительная адресация

.

При копировании формулы в ячейки ниже первая ссылка на ячейку

B2

не изменяется, т.к. она введена с помощью абсолютной адресации

$B$2

. Т.к. копирование ведется только в нижние ячейки, то достаточно было написать знак $ только перед номером строки, т.е. B$2. Напротив, вторая ссылка на ячейку

B2

при копировании формулы внизменяется, т.к. она введена с помощью относительной адресации

B2

.

В итоге, при копировании формулы из

С2

в ячейку

С3

формула примет вид

=СУММ($B$2:B3)

, а в

С8

она будет

=СУММ($B$2:B8)

Как сказано выше, формула

=СУММ(B$2:B2)

также будет работать.

Автор Владислав Каманин На чтение 1 мин

А вы знаете как в таблице Excel быстро посчитать нарастающий итог?

Нарастающий итог в Excel

В первой ячейке диапазона составим формулу с функцией СУММ() в которой границы диапазона будут состоять из одной и той же ячейки. 

Но! Первую ссылку на ячейку мы зафиксируем, а вторую оставим абсолютной. 

Telegram Logo Больше лайфхаков в нашем Telegram Подписаться

Так, при протягивании формулы на соседние ячейки диапазон будет расширяться.

Нарастающий итог в Excel

Протянем формулу вниз. 

Нарастающий итог готов.

Нарастающий итог в Excel

Почитайте еще

Новички в Excel часто спрашивают: «Как посчитать цену

А вы умеете рассчитывать общий итог в таблице Excel

Это простой, но полезный совет по вычитанию процента

А вы так считаете итоги в таблицах Excel?

Автор Дмитрий Якушев На чтение 1 мин. Просмотров 4.5k.

=СУММ($C$5:C6)

Расчет нарастающих итогов в Excel

Обычная сумма суммирует все ячейки в заданном диапазоне. Но иногда нужно, чтобы в каждой следующей ячейке была сумма предыдущих и еще одной. В этом нам поможет абсолютная ссылка $C$6. В результате при копировании диапазона он будет расширяться, а первое значение останется неизменным:

=СУММ($C$6:C6)//формула D6
=СУММ($C$6:C7)// формула D7
=СУММ($C$6:C8)// формула D8

Вам также может понравиться

Эта функция помогает подвести промежуточные итоги по

06.8k.

Сумма наименьших N значений =СУММПРОИЗВ(НАИМЕНЬШИЙ(rng;

04.8k.

= СУММЕСЛИМН( значения ; Диапазон_Значений ;

027.8k.

Сумма всего столбца =СУММ( A:А ) Если вы хотите, просуммировать

05.9k.

Ячейка начинается с определенного значения =СУММЕСЛИ(диапазон;

025.9k.

Сумма, если ячейки содержат звездочку =СУММЕСЛИ(диапазон;

036.5k.

Сумма, если Дата находится между двумя датами =СУММЕСЛИМН(сумма;

031.7k.

Сумма, если больше чем =СУММЕСЛИ( диапазон ;

020.2k.

Like this post? Please share to your friends:
  • Формулы с логическими функциями excel
  • Формулы погрешностей в excel
  • Формулы с курсом валют excel
  • Формулы по физике в excel
  • Формулы с корнем в word