Перейти к содержанию
На чтение 1 мин Опубликовано 24.01.2015
На рисунке ниже Вы можете видеть таблицу Excel, в которой представлен объем продаж по дням за январь месяц 2014 года. В ячейке B20 отображается общая сумма продаж за весь месяц, вычисленная с помощью функции СУММ. Требуется посчитать объем продаж на каждую дату января относительно начала месяца, т.е. накопительную сумму.
При подсчете накопительной суммы в Excel, необходимо, чтобы суммирование всегда начиналось с третьей строки (ячейки B3) и заканчивалось рассматриваемой строкой. Например, ячейка C3 должна содержать следующую формулу: =СУММ(B3), а если говорить точнее, то =СУММ(B3:B3), т.е. суммирование диапазона, состоящего из одной ячейки.
Ячейка C4 такую формулу: =СУММ(B3:B4)
Ячейка C19 такую формулу: =СУММ(B3:B19)
Из представленных выше формул становится очевидно, что необходимая нам формула должна использовать смешанную ссылку и выглядеть следующим образом:
Если скопировать данную формулу во все ячейки таблицы, получим следующий результат:
Поскольку значения в ячейках B20 и C19 совпадают, то можно быть уверенным, что накопительная сумма в Excel подсчитана верно. Как видите, все просто!
Оцените качество статьи. Нам важно ваше мнение:
У нас накопились ответы на вопросы о накопительных итогах (даже ответы про накопительные итоги – накапливаются =) Такое впечатление, что с задачей рассчитать нарастающие или накопительные итоги сталкивается практически каждый слушатель наших курсов. И вопрос стоит даже не в том, какую формулу использовать.
Обычно всех интересуют нюансы. Например, как «остановить» нарастающий итог, чтобы он не отображался в периодах, где данных еще нет. Или как считать такой итог не в рамках года, а за все время.
Немного о нарастающих итогах
Нарастающий итог – это сумма показателей, где к данным текущего периода добавляются суммы предыдущих периодов. Вычисления нарастающих итогов обычно просят руководители, чтобы увидеть показатели с начала месяца, квартала или года, например, продажи или прибыль. Или посмотреть, сколько денег принес проект за все время работы. Совсем специфический случай – моделирование расчетных остатков, переходящих из года в год.
Отсюда, вычисления можно разделить на два вида:
а) внутри периода (с начала месяца, квартала, года);
б) без привязки к периодам.
В Power Pivot и Power BI для расчета нарастающих итогов есть специальные формулы.
DAX-формулы для расчета нарастающих итогов
1. Нарастающие итоги с начала года считаются с помощью формул TOTALYTD или DATESYTD.
YTD = TOTALYTD ( [факт], '
Календарь'
[Date] )
или
YTD = CALCULATE ( [факт], DATESYTD ( '
Календарь'
[Date] ) )
2. Нарастающий итог с начала квартала – формулы TOTALQTD или DATESQTD.
QTD = TOTALQTD ( [факт], '
Календарь'
[Date] )
или
QTD = CALCULATE ( [факт], DATESQTD ( '
Календарь'
[Date] ) )
3. C начала месяца – формулы TOTALMTD или DATESMTD.
MTD = TOTALMTD ( [факт], '
Календарь'
[Date] )
или
MTD = CALCULATE ( [факт], DATESMTD ( '
Календарь'
[Date] ) )
4. Нарастающий итог без привязки к периодам.
При расчете нарастающего итога без привязки к периодам показатели будут суммироваться с самого начала проекта – с его первой даты, а в начале нового периода не «сбросятся».
Нарастающий итог с начала проекта =
CALCULATE (
[факт],
FILTER (
ALL ( '
Календарь'
[Date] ),
'
Календарь'
[Date] <= MAX ( '
Календарь'
[Date] )
)
)
Быстрые меры для нарастающих итогов
Кстати, для того чтобы посчитать нарастающие итоги, в Power BI вовсе не обязательно писать меры вручную. Их можно настроить с помощью «быстрых мер».
Добавить такую меру можно в меню: Моделирование или Средства работы с таблицами (мерами) → Быстрая мера. Эта кнопка также доступна в выпадающем меню при нажатии на поле правой кнопкой мышки – Новая быстрая мера.
В быстрых мерах есть несколько видов нарастающих итогов — с начала периода (блок «Логика операций со временем») и от начала проекта (часть «Итоги»).
Нарастающий итог в будущих периодах
Вот мы и подошли к нюансу оформления, который иногда сильно портит вид отчета. Особенно некрасивыми такие вычисления выглядят в таблицах. Потому что непонятно, почему в этих еще «не наступивших» периодах вообще есть какие-то цифры.
Как вам такие график и таблица?
У нас есть данные только за январь-март. Но к значениям с апреля по декабрь формула «прибавила» сумму, накопленную за первые три месяца. Такое «протягивание» итогов в формулах очень полезно для вычислений в будущих периодах, для построения планов и прогнозов. Но в текущих расчетах оно может мешать.
Самый простой способ ограничения «не наступивших» периодов – с помощью DAX-формул:
1. Находим наибольшую дату, по которую есть данные, самым удобным способом, подходящим для ваших данных. Например:
дата max = MAX ( '
данные'
[Date] )
или
дата max = CALCULATE ( MAX ( '
данные'
[Date] ), FILTER ( '
данные'
, [тип] = "
факт"
) )
2. Дальше эту максимальную дату подставляем в вычисления:
факт YTD =
CALCULATE (
[нарастающий итог],
FILTER (
'
Календарь'
,
'
Календарь'
[Date] <= [дата max]
)
)
Нарастающий итог за предыдущий год
Обычно аналитики, которые считают нарастающие итоги, сравнивают их с другими накопительными показателями. Например, за предыдущий год:
1.Находим показатели за прошлый год с формулой DATEADD.
прошлый год = CALCULATE ( [факт], DATEADD ( '
Календарь'
[Date], -1, YEAR ) )
2. Нарастающий итог за прошлый год (здесь важен порядок вычислений):
прошлый год YTD = TOTALYTD ( [прошлый год], '
Календарь'
[Date] )
Готово! В таблице видно, что нарастающий итог рассчитан за прошлый год.
Но посчитать итоговые отклонения пока не получится – предыдущий период нельзя сравнивать с неполным текущим годом.
Сопоставимые данные за текущий и предыдущий год
Чтобы привести к сопоставимому виду текущий и прошлый годы требуется ограничение дат. Это можно сделать так же, как в предыдущих примерах. Или с помощью еще одного варианта, например CALCULATETABLE и SAMEPERIODLASTYEAR.
факт пг YTD =
TOTALYTD (
[факт],
CALCULATETABLE (
SAMEPERIODLASTYEAR ( '
Календарь'
[Date] ),
FILTER ( '
Календарь'
, '
Календарь'
[Date] <= [дата max] )
)
)
В итоге у нас получается сопоставимый ряд данных, с помощью которого можно корректно посчитать отклонения.
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 Еще…Меньше
С помощью набегаемого итога можно просмотреть значения элементов в ячейках при вводе новых элементов и значений с течением времени. Чтобы вычислить набегаю итог, воспользуйтесь следующей процедурой:
-
Настройка таблицы, как в примере ниже.
Чтобы этот пример проще было понять, скопируйте его на пустой лист.
Копирование примера
-
Создайте пустую книгу или лист.
-
Выделите пример в разделе справки.
Примечание: Не выделяйте заголовки строк или столбцов.
-
Нажмите клавиши CTRL+C.
-
Выделите на листе ячейку A1 и нажмите клавиши CTRL+V.
-
Чтобы переключиться между просмотром результатов и просмотром формул, возвращающих эти результаты, нажмите клавиши 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
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 вы увидите, что первая часть диапазона является абсолютной ссылкой (перед столбцом и строкой стоит символ $), а во второй части диапазона есть смешанная ссылка (перед столбцом стоит символ $). Таким образом, формула будет работать как набегающий итог при копировании в смежные строки.
-
-
Чтобы сохранить суммарный итог, добавьте строку для каждой новой записи и скопируйте формулу из столбца D в эту строку.
Вводить или копировать формулу вручную в каждой строке не нужно. Например, можно ввести формулу только в ячейку D2. Затем просто скопируйте формулу в другие строки, содержащие данные, перетащив его в ячейку D13.
Примечание: Сумма с нарастающем итоге отличается от нарастающем балансе, при котором сумма значений возрастает или сжимается (например, регистрируется в книге) при добавлении новых записей.
-
Настройка таблицы, как в примере ниже.
Чтобы этот пример проще было понять, скопируйте его на пустой лист.
Копирование примера
-
Создайте пустую книгу или лист.
-
Выделите пример в разделе справки.
Примечание: Не выделяйте заголовки строк или столбцов.
-
Нажмите +C.
-
Выберем ячейку A1 на +V.
-
Чтобы переключиться между просмотром результатов и просмотром формул, возвращающих результаты, нажмите клавиши 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
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 вы увидите, что первая часть диапазона является абсолютной ссылкой (перед столбцом и строкой стоит символ $), а во второй части диапазона есть смешанная ссылка (перед столбцом стоит символ $). Таким образом, формула будет работать как набегающий итог при копировании в смежные строки.
-
-
Чтобы сохранить суммарный итог, добавьте строку для каждой новой записи и скопируйте формулу из столбца D в эту строку.
Вводить или копировать формулу вручную в каждой строке не нужно. Например, можно ввести формулу только в ячейку D2. Затем просто скопируйте формулу в другие строки, содержащие данные, перетащив его в ячейку D13.
Примечание: Сумма с нарастающем итоге отличается от нарастающем балансе, при котором сумма значений возрастает или сжимается (например, регистрируется в книге) при добавлении новых записей.
Нужна дополнительная помощь?
Нужны дополнительные параметры?
Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.
В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.
Время прочтения: 3 мин.
Расчет промежуточного итога SQL — это очень распространенный шаблон, часто используемый в анализе. В этой статье вы узнаете, что такое промежуточный итог и как написать SQL-запрос для его вычисления.
Что такое промежуточный итог SQL?
В SQL промежуточный итог — это совокупная сумма предыдущих чисел в столбце. Посмотрите на пример ниже, в котором представлен список продаж продуктов в день:
Дата продажи | Количество проданных продуктов | Накопительный итог |
2021-04-10 | 10 | 10 |
2021-04-11 | 15 | 25 |
2021-04-12 | 5 | 30 |
В первом столбце отображается дата. Во втором столбце показано количество проданных продуктов в этот день. В третьем столбце [Накопительный итог] суммируется общее количество проданных продуктов в этот день.
Например, в первый день (2021-04-10) сотрудник продал 10 продуктов, и общее количество проданных продуктов составило 10. На следующий день (2021-04-11) сотрудник продал 15 продуктов; [Накопительный итог] равен 25 (10 + 15). На третий день (2021-04-12) сотрудник продал пять продуктов, и значение [Накопительный итог] равен 30. Другими словами, [Накопительный итог] — это текущее значение, которое меняется день ото дня. Это общее количество проданных продуктов за день.
Далее мы поговорим о SQL-запросе, который позволяет получить такой итог, и узнаем больше об оконных функциях.
Как вычислить совокупный итог в MSSQL
Если вы хотите вычислить промежуточный итог в MSSQL, вам необходимо знать оконные функции, предоставляемые вашей базой данных. Оконные функции работают с набором строк и возвращают агрегированное значение для каждой строки в наборе результатов.
Синтаксис оконной функции SQL, вычисляющей совокупный итог по строкам, следующий:
window_function ( column ) OVER ( [ PARTITION BY partition_list ] [ ORDER BY order_list] )
Предложение OVER обязательно использовать в оконной функции, но аргументы в этом предложении необязательны.
Пример
В этом примере мы будем вычислять общую текущую сумму проданных продуктов каждый день.
Дата продажи | Количество проданных продуктов |
2021-04-10 | 10 |
2021-04-11 | 15 |
2021-04-12 | 5 |
Данный запрос выбирает дату продажи для всех пользователей. Нам также нужна сумма всех продуктов за каждый день, начиная с первого заданного дня (2021-04-10):
SELECT [c_date] ,[kolvo_product],
sum(kolvo_product) OVER (ORDER BY c_date)
AS total_product
FROM [product_sales]
Результат:
Дата продажи | Количество проданных продуктов | Накопительный итог |
2021-04-10 | 10 | 10 |
2021-04-11 | 15 | 25 |
2021-04-12 | 5 | 30 |
Чтобы вычислить промежуточный итог, мы используем SUM()агрегатную функцию и указываем столбец kolvo_product в качестве аргумента; мы хотим получить совокупную сумму проданных продуктов из этого столбца.
Следующим шагом будет использование предложения OVER. В нашем примере это условие имеет один аргумент: ORDER BY c_date. Строки результирующего набора сортируются в соответствии с этим столбцом ( c_date).
Для каждого значения в столбце c_date вычисляется общая сумма значений предыдущего столбца (т. е. сумма проданных продуктов до даты в текущей строке) и к ней добавляется текущее значение (т. е. продукты, проданные в день текущей строки). Общая сумма отображается в новом столбце, который мы назвали total_product.
На первом этапе (Дата продажи 2021-04-10) у нас 10 проданных продуктов. Сумма продуктов, проданных в этот день, та же — 10. На следующем шаге мы прибавляем к этой общей сумме (10) количество проданных продуктов на текущую дату (2021-04-11) — 15; это дает нам промежуточную сумму 25. В последней строке набора результатов (для последней даты продажи, 2021-04-12) промежуточная сумма равна 30.
Благодаря оконным функциям SQL легко найти кумулятивное общее количество проданных продуктов за заданный период времени. Например, в период с 10 апреля по 12 апреля 2021 года общее количество проданных продуктов равно 30.
Просмотров:
1 503
Есть несколько способ посчитать накопительный итог в Excel. Один из самых простых способов, использовать функцию «СУММ» совместно с постоянными ссылками на ячейки.
Исходные данные
У нас есть таблица, отражающая продажи двух товаров за полгода. Необходимо добавить столбец F в котором будут отражаться итоги продаж как накопительный итог.
Формула
Введем в ячейку F3 следующую формулу — =СУММ($E$3:E3). И растянем ее на следующие ячейки. Так чтобы формула была во всем диапазоне ячеек, от F3 до F8. В результате получим такой результат:
Получили что и хотели, в столбце «Итого за год» у нас отображаются накопительные итоги с начала года.
Логика действия функции очень проста, в первой ячейке ссылка функции «СУММ» указывает не на диапазон, а на одну ячейку Е3. Функция «СУММ» принимает параметром диапазон ячеек, и в случае, когда диапазон состоит из одной ячейки, функция его и воспринимает как диапазон длинной 1 ячейка, фактический просто возвращая результат. После ввода формулы в ячейку F3 мы растягивали ее на следующие ячейки, и для того что бы Excel не сдвигал автоматический ссылку с первой ячейки диапазона, мы указываем ее как статическую. Второй параметр диапазона будет меняться при распространении действия формулы на другие ячейки. Что в результате и приведет к необходимому итогу, мы получим в последнем значении нашего столбца накопительный итог.