Сравнение периодов
Платформа позволяет вычислять показатели со смещением на N дней, недель, месяцев, кварталов или лет. Это позволяет сравнивать показатели за любые интересующие периоды с любым необходимым смещением.
В нашем примере мы рассмотрим сравнение данных с гранулярностью год и смещением назад на один год, а также вычислим динамику продаж в процентах. Для этого мы сделаем следующее:
Вычислим продажи за прошлый год с помощью функции
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 )
)
Вычислим динамику продаж с использованием вложенных мер:
Динамика в процентах = DIVIDE ( factonlinesales[Продажи за прошлый год], SUM ( factonlinesales[salesamount] ) ) * 100
где сумма продаж за прошлый год делится на общую сумму продаж за текущий период и полученный результат умножается на 100.
Таким образом, формула позволяет понять разницу в процентах между продажами текущего и прошлого годов.
Теперь мы можем визуализировать наши расчеты:
Аналогичным образом вы можете сравнивать любой период. Например, если вы хотите вычислить объем продаж за прошлую неделю, вы можете воспользоваться следующей формулой:
где
SUM ( 'Факты'[salesamount] )
– вычисляет сумму значений столбца'Факты'[salesamount]
.FILTER ( ALL ( 'Календарь' ), ... )
– функцияFILTER
используется для создания фильтра, который применяется к таблице'Календарь'
. ФункцияALL
сбрасывает существующие фильтры, чтобы рассмотреть весь диапазон дат в таблице'Календарь'
.DATEADD ( 'Календарь'[datekey], -7, day )
– сдвигает каждую дату на 7 дней назад.MINX и MAXX
– вычисляют минимальное и максимальное значение выражения в данной таблице. Здесь они используются для определения диапазона дат (от минимальной до максимальной), сдвинутого на 7 дней назад.AND ( ... )
– логическая операция, которая проверяет, что каждая дата в таблице'Календарь'
находится внутри диапазона дат, сдвинутого на 7 дней назад.
Смотрите также
Моделирование данных с помощью DAX
Поддерживаемые функции DAX
Математические операторы
Нужна дополнительная помощь?