Накопительный итог (YTD) и TOTALYTD

Считаем нарастающий итог с начала года — базовый приём управленческой отчётности.

Накопительный итог (YTD, year-to-date) — сумма показателя с начала года до текущей даты, нарастающим итогом.

Зачем нужен накопительный итог

Руководителю важна не только выручка за июнь, но и «сколько накопили с января». YTD показывает прогресс к годовой цели: на графике видно, идём мы в плане или отстаём. Это один из самых востребованных расчётов в отчётности, и DAX делает его одной функцией — при условии, что есть правильная таблица дат.

TOTALYTD

Семейство time-intelligence функций умеет считать накопительные итоги «из коробки»:

Выручка YTD = TOTALYTD( [Выручка], Date[Дата] )

Функция берёт меру [Выручка] и пересчитывает её для периода «от 1 января текущего года до текущей даты в контексте». В строке за март она даст сумму янв+фев+март, в строке за июнь — янв…июнь. Аналоги: TOTALQTD (с начала квартала), TOTALMTD (с начала месяца).

Месяц   Выручка   Выручка YTD
Янв       100       100
Фев       150       250   (100+150)
Мар       120       370   (+120)
Апр        90       460   (+90)
Май       200       660   (+200)
Июн       180       840   (+180)

Через CALCULATE вручную

Полезно понимать, что под капотом это просто CALCULATE с диапазоном дат:

Выручка YTD (вручную) = CALCULATE(
    [Выручка],
    DATESYTD( Date[Дата] )
)

DATESYTD возвращает набор дат от начала года до текущей, а CALCULATE применяет его как фильтр. Это та же логика, просто разложенная на части — и именно так устроены почти все time-intelligence функции.

Финансовый год

Если год компании начинается не с января (например, с 1 апреля), это указывают третьим аргументом — датой конца финансового года: TOTALYTD([Выручка], Date[Дата], "31/03"). Тогда накопление стартует с апреля. Игнорировать это нельзя: иначе YTD будет считаться по календарному году и расходиться с управленческой отчётностью.

Как работает под капотом

В контексте строки (скажем, «Июнь 2026») функция определяет текущую дату, строит диапазон от начала года до неё и накладывает этот диапазон как фильтр на таблицу дат. По связи фильтр спускается к фактам, и мера суммируется по нужным дням. Именно поэтому критична непрерывная помеченная таблица дат: без неё диапазон не построится и YTD вернёт неверный результат или ошибку.

Частые ошибки

  • Считать YTD без таблицы дат. Time intelligence требует помеченной непрерывной таблицы дат — иначе расчёт ломается.
  • Забыть про финансовый год. Для нестандартного года нужен третий аргумент с датой его окончания.
  • Помещать YTD без оси времени. Накопительный итог осмыслен на оси дат/месяцев; в одной карточке без периода он равен годовой сумме.

Итог

  • YTD — сумма с начала года нарастающим итогом, показывает прогресс к цели.
  • TOTALYTDDATESYTD внутри CALCULATE) считают его при наличии таблицы дат.
  • Для нестандартного финансового года задавайте дату его конца третьим аргументом.
Проверьте себя
1. Что показывает накопительный итог YTD?
AВыручку только за текущий день
BСумму с начала года нарастающим итогом
CСреднее за всё время
DПрогноз на будущее
2. Что обязательно для работы TOTALYTD?
AДвунаправленные связи
BПомеченная непрерывная таблица дат
CDirectQuery
DМинимум 10 визуалов