Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

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

В первом случае это может быть необходимо, если, например, вы хотите провести аналитику продаж по годам и вам интересно узнать, как происходит накопление внутри каждого года. Во втором случае вам могут пригодиться такие расчеты, если, например, у вас крупный проект, который длится больше года, и вы хотите знать, сколько ресурсов потрачено с начала проекта до текущего момента. Мы рассмотрим оба варианта.

Расчет суммы накопленного итога за определенный период (со сбросом)

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

Используемые данные

Таблица фактов

Таблица измерений

salesfact
Используемый столбец:

  • salesamount – сумма, которую заплатил клиент с учетом количества;

dimdate
Используемый столбец:

  • datekey – содержит уникальные значения, соответствующие конкретным датам.

Для проведения расчетов, воспользуемся следующей формулой:

TOTALYTD(SUM(salesfact[salesamount]), dimdate[datekey])

где –

  • salesamount – это столбец в таблице salesfact, который содержит значения продаж.

  • SUM(salesfact[salesamount]) – суммирует значения в столбце salesamount, вычисляя общую сумму продаж.

  • datekey  – столбец в таблице dimdate, который содержит даты, по которым производится расчет.

Данная формула легла в основу новой меры – Накопленный итог,и с ее помощью мы визуализировали накопленный итог со сбросом по годам:

На изображении видно, что начиная с первого месяцам 2009 года накопление сбрасывается и происходит дальнейший накопительный расчет.

Описанная формула выполняет ту же вычислительную операцию, что и приведенная ниже формула:

Блок кода
CALCULATE (
            SUM ( 'salesfact'[salesamount] ),
            FILTER (
                ALL ( 'dimdate' ),
                AND( 'dimdate'[datekey] >= DATE ( YEAR(MAX('dimdate'[datekey])), 1, 1 ),

                  'dimdate'[datekey] <= MAXX ( 'dimdate', 'dimdate'[datekey] 
                ))
            )
        )

Разница заключается только в том, что формула, в которой используется функция TOTALYTD более проста.

Примечание

Данная формула функционирует в бета-режиме. Рекомендуется тестирование на небольшом объеме данных.

панель
panelIconIdatlassian-warning
panelIcon:warning:
bgColor#FFEBE6

Ограничение, касающиеся данной формулы:

Не поддерживается фильтрация накопленного итога,  а также нет возможности задать минимальную/максимальную дату для расчета накопления.

Расчет суммы накопленного итога без привязки к периодам (без сброса)
Якорь
ex
ex

Для данного примера мы воспользуемся теми же данными, что в примере выше. Для выполнения расчета мы будем использовать следующую формулу:

Блок кода
CALCULATE (
            SUM ( 'factonlinesales'[salesamount] ),
            FILTER (
                ALL ( 'dimdate' ),
                  'dimdate'[datekey] <= MAXX ( 'dimdate', 'dimdate'[datekey] 
                ))
            )

Данная формула вычисляет общий объем продаж (salesamount) за все даты, которые меньше или равны максимальной дате в таблице dimdate. Это позволяет получить суммарные продажи без привязки к конкретному периоду, вплоть до самой последней даты, указанной в таблице dimdate.

Для сравнения двух расчетов мы создали две меры (Накопленный итог и Накопленный итог без сброса) и разбили данные по месяцам:

накопленный-итог-new.png

Смотрите также

📄 Поддерживаемые функции DAX
📄 Создание мер

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

Свяжитесь с технической поддержкой.