Сравнение периодов

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

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

  1. Вычислим продажи за прошлый год с помощью функции DATEADD:

    Продажи за прошлый год = CALCULATE ( SUM ( factonlinesales[salesamount] ), FILTER ( ALL ( dimdate ), AND ( 'dimdate'[datekey] >= MINX ( dimdate, DATEADD ( 'dimdate'[datekey], -1, YEAR ) ), 'dimdate'[datekey] <= MAXX ( 'dimdate', DATEADD ( 'dimdate'[datekey], -1, YEAR ) ) ) ) )

    где

    • MINX ( dimdate, DATEADD ( 'dimdate'datekey, -1, YEAR ) ) вычисляет минимальную дату, сдвинутую на один год назад;

    • MAXX ( dimdate, DATEADD ( 'dimdate'datekey, -1, YEAR ) ) вычисляет максимальную дату, сдвинутую на один год назад;

    • функция CALCULATE суммирует значения salesamount из таблицы factonlinesales, но только для тех строк, которые соответствуют датам, отфильтрованным на предыдущий год.
      Таким образом, формула вычисляет сумму продаж за прошлый год, используя текущий контекст дат и сдвигая его на один год назад.

Для сравнения:
В Power BI аналогичные вычисления можно произвести следующим образом:

Продажи за прошлый год = CALCULATE ( SUM ( factonlinesales[salesamount] ), DATEADD ( 'MyDate'[Date], -1, YEAR ) )
  1. Вычислим  динамику продаж с использованием вложенных мер:

    Динамика в процентах = DIVIDE ( factonlinesales[Продажи за прошлый год], SUM ( factonlinesales[salesamount] ) ) * 100

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

Теперь мы можем визуализировать наши расчеты:

DATEADD.png

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

где

  • SUM ( 'Факты'[salesamount] ) – вычисляет сумму значений столбца 'Факты'[salesamount].

  • FILTER ( ALL ( 'Календарь' ), ... ) – функция FILTER используется для создания фильтра, который применяется к таблице 'Календарь'. Функция ALL сбрасывает существующие фильтры, чтобы рассмотреть весь диапазон дат в таблице 'Календарь'.

  • DATEADD ( 'Календарь'[datekey], -7, day ) – сдвигает каждую дату на 7 дней назад.

  • MINX и MAXX – вычисляют минимальное и максимальное значение выражения в данной таблице. Здесь они используются для определения диапазона дат (от минимальной до максимальной), сдвинутого на 7 дней назад.

  • AND ( ... ) – логическая операция, которая проверяет, что каждая дата в таблице 'Календарь' находится внутри диапазона дат, сдвинутого на 7 дней назад.

week.png

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

Моделирование данных с помощью DAX
Поддерживаемые функции DAX
Математические операторы

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

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