Диаграммы — классная штука, которая помогает иллюстрировать цифры. Благодаря им «сухая» информация выглядит красиво, интересно и хорошо запоминается. Но не всегда… В некоторых случаях стандартные диаграммы почти не добавляют наглядности. Например, когда один показатель намного меньше другого: он просто превращается в «полоску» по которой невозможно понять, есть рост или нет. Неудачный пример — попробовать настроить вторую ось, чтобы сравнение стало более значимым (так не надо делать!)
Аналитик поступит по-другому – покажет не абсолютные, а относительные изменения. Особенно наглядно они выглядят, если воспользоваться методом базисной подстановки. Этот метод показывает, как меняются данные относительно «отправной точки».
Разберём, как это сделать на примере и заодно настроим динамическую зависимость от среза с годами с помощью формул FILTER, ALLSELECTED и MINX.
Расчет динамики изменений
На графике ниже показаны продажи по двум товарам. На фоне первого товара динамику второго не видно вообще, хотя она есть и наблюдается устойчивый рост. Чтобы было удобнее читать, скачайте файл Power BI с примером и формулами.
Чтобы сравнить динамику роста продаж по каждому товару, построим диаграмму с базисной подстановкой к начальному году. В нашем случае это 2009 год. Для сравнения периодов потребуется справочник дат – Календарь, записанный с помощью формулы CALENDARAUTO. Для вычислений потребуются простые DAX-формулы DIVIDE и CALCULATE, чтобы поделить продажи за текущий год на сумму базисного года.
Фиксированный год = DIVIDE ( [Продажи], CALCULATE ( [Продажи], ' Календарь' [Год] = 2009) ) |
Пояснение, как здесь работает CALCULATE:
CALCULATE ( [Продажи], '
Календарь'
[Год] = 2009 )
Выражение аналогично СУММЕСЛИ. В нем прописан фильтр – выдавать продажи только за 2009 год, что оно и делает.
Добавим меру на график (ось дат должна быть из справочника), чтобы показать динамику изменения показателей.
На графике видно относительную динамику роста, но есть нюанс – если применить фильтр дат, значения будут пересчитаны на 2009 год. Поэтому для динамического анализа потребуется формула:
Динамический год = var _MinYear = MINX ( ALLSELECTED ( ' Данные' ), YEAR ( ' Данные' [Дата] ) )return DIVIDE ( [Продажи], CALCULATE ( [Продажи], FILTER ( ALLSELECTED ( ' Календарь' ), [Год] = _MinYear) ) ) |
Эта формула работает почти так же, как предыдущая. Только вместо выражения [Год] = 2009 используется формула для определения базисного года:
MINX ( ALLSELECTED ( '
Данные'
), YEAR ( '
Данные'
[Дата] ) ), где
- MINX находит в заданном диапазоне минимальный год;
- таблица задана с помощью ALLSELECTED, чтобы выбирались все даты в заданном срезами диапазоне.
Добавляем меру на график и получаем гибкое изменение начальной даты.
Как на график добавить маркер и текстовую подпись на линии — смотрите детали в статье «Подпись показателей на графике Power BI».