Сравнение временных периодов

Иногда бывает очень полезно сравнить данные с предыдущим периодом. Подобная функциональность есть в Google Analytics и Яндекс.Метрике. Сделаем такую же.

Часть 1. Power Query

Для начала нам нужно создать два календаря. Первый основной, второй для сравнения. Это можно быстро сделать в Power Query взяв в качестве календаря соответствующий столбик основной таблицы.

= Table.SelectColumns(main,{"Date"})

Также нам необходимо в первом календаре продублировать столбец Date. Второй столбец дат — DateVisual будет нужен для визуализации и для связи с основной таблицей. Тогда как столбцы Date в обоих календарях будут предназначены только для фильтрации.

Часть 2. DAX

Тут нам нужно создать две меры:

_DateDelta = FORMAT(CALCULATE(FIRSTDATE(Calendar2[Date]))-CALCULATE(FIRSTDATE(Calendar1[DateVisual]);ALL(Calendar1[DateVisual]));"0")

_DateDelta — отвечает за подсчет разницы между диапазонами (фактически это кривой костыль, потому что по-нормальному вычислить разницу не получилось, но есть подозрение, что существует более разумное решение)

_ClicksPrev = CALCULATE(SUM(main[Clicks]);DATEADD(Calendar1[DateVisual];[_DateDelta];DAY))

_ClicksPrev — вычисление кликов за предыдущий период

Часть 3. Визуализация

Для начала свяжем столбец DateVisual из главного календаря с полем Date из основной таблицы.

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

Теперь создаем визуализацию в виде графика. Берем clicks из главной таблицы и меру _ClicksPrev как данные. А в качестве оси — DateVisual из первого календаря.

Собственно — всё.
При изменении диапазонов дат в фильтрах графики соответственно изменяются. Также, поскольку мера использует только первую дату из диапазона второго календаря, то можно залочить вторую, чтобы не расстраивать пользователя.

P/S

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

Ссылка на гитхаб

https://github.com/q-stat-ru/art01_pbi_compare