В Power BI есть несколько DAX функций, которые делают процесс создания таблицы Календарь очень простым и легким. Эти функции называются Calendar() и CalendarAuto().

В этой короткой статье я расскажу что это за функции и как можно создать Календарь всего лишь за пару секунд. 

Функция Calendar() в DAX

Одним из самых легких способов создания Календаря является использование функции Calendar() в DAX.

Эта простая функция, которая принимает два параметра – дату начала и дату окончания.

<Название таблицы>=Calendar(<дата начала>, <дата окончания>)

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

Ниже приведены действия в Power BI :

  1. Создайте новую таблицу в меню Modeling
Создать новую таблицу

2. Используйте следующее выражение, чтобы сгенерировать таблицу

Calendar = CALENDAR(DATE(2020,1,1),DATE(2021,12,31)) 

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

Date(год, месяц, день)

Календарь в Power BI

Не обязательно указывать статические даты, когда вы создаете таблицу Календарь. Вы можете создать динамический календарь, который будет обновляться относительно текущей даты.

Привожу еще один пример, Календарь на год назад и на год вперед относительно текущей даты

Calendar Relative = CALENDAR(
                            TODAY()-365,
                            TODAY()+365
                            )

Вы так же можете создать Календарь используя минимальную и максимальную дату из вашей таблицы данных

Давайте теперь посмотрим на следующую функцию CalendarAuto()

Функция CalendarAuto() в DAX

Функция CalendarAuto() так же как и Calendar() возвращает таблицу с датами, каждая дата в отдельной строке. Однако, вам не надо указывать дату начала и дату окончания. Вместо этого, функция автоматически определит минимальную и максимальную даты в вашей Моделе. Для этого функция пройдется по всем колонкам c датами (кроме calculated columns, calculated tables и measures) и автоматически определит диапазон.

Calendar = CALENDARAUTO()

Как видете, функция CalendarAuto() автоматически определила диапазон дат.

Вы можете использовать эту функция для создания фискального (финансового) календаря. Для этого в параметр функции надо передать месяц окончания фискального года от 1 до 12

CALENDARAUTO(<месяц окончания фискального года от 1 до 12>)

Например, если фискальный год начинается с 1 Июля и заканчивается в Июне, вы можете использовать следующий код

CALENDARAUTO(6)

Функции Calendar() и CalendarAuto() очень просты в использовании. Стоит ли их использовать всегда если вам нужен Календарь? Это зависит от ситуации. Например, если у вас уже есть Календарь в источнике (SQL Server и тп.), который поддерживается, содержит выходные дни и тп. – вы можете использовать его. Существует так же возможность создавать Календарь в Power Query с помощью API вызовов и веб-сервисов. Каждый подход имеет свои плюсы и минусы в различных ситуациях.

Newsletter Subscribe

Get the Latest Posts & Articles in Your Email

We Promise Not to Send Spam:)