Як створити графік роботи в Power BI за кілька простих кроків

У попередньому дописі в блозі ми вже пояснювали, як створити таблицю дат у Power BI за допомогою DAX. Окрім дат, ви можете додати додаткові властивості для кожної дати: рік, назви місяців, назви днів тижня, ... Але як щодо годин та хвилин? У цьому блозі та відео ми покажемо вам, як створювати графіки роботи в Power BI.

Багато звітів містять дати, і, отже, ви в кінцевому підсумку створите одну або кілька таблиць дат у своїй моделі Power BI. Така таблиця дат містить принаймні всі дати в діапазоні дат, які відповідають вашим комерційним потребам (немає потреби запускати таблицю дат 1 січня 1930 року, якщо ваші ділові операції розпочалися в 1990 році). Окрім дат, ви, можливо, додасте додаткові властивості для кожної дати: рік, назви місяців, назви днів тижня, ... Щось на зразок цього:

роботи

Ви можете подивитися на цю публікацію блогу Фредеріка Вандепутте, оскільки вона легко пояснює, як створити таку таблицю дат за допомогою DAX.

Що стосується годин і хвилин

Іноді вам потрібно звітувати на більш детальному рівні, ніж день. Можливо, ви працюєте в компанії з доставки пакетів і отримували запит звітувати щогодини, шукаючи схеми часу доставки. Або, можливо, як науковець ви проводите ітерацію експериментів, і навіть секунди важливі для конкретної установки. І нарешті, що робити, якщо ви хочете повідомити про все між ними, наприклад, про 15-хвилинні інтервали ([0-14], [15-29], [30-44], [45-59]).

Першим підходом може бути додавання годин/хвилин/секунд до вашої таблиці дат. Але незабаром ви дізнаєтесь, що це призведе до величезного обсягу даних (31 536 000 рядків на кожен позавипускний рік). Крім того, з точки зору моделювання, ви дізнаєтесь, що краще відокремити виміри дати та часу. Поки що добре, але як же нам створити такий графік роботи в Power BI.

Це не так складно, коли ми використовуємо правильні функції. Перший - GENERATESERIES і створює таблицю з одним стовпцем, що містить послідовні значення між заданим діапазоном. Якщо ми хочемо створити діапазон з усіма можливими годинами, це можна зробити за допомогою цієї формули DAX (розрахункова таблиця):

Оскільки стовпець завжди називається [Значення], нам потрібно його перейменувати. Якщо ми цього не зробимо, майбутнє перехресне об’єднання не буде працювати, коли ми передаємо одне і те ж ім’я стовпця більше одного разу. Тому ми перейменовуємо його за допомогою функції SELECTCOLUMNS:

Тепер давайте помістимо це у змінну `HourTable` і використовуємо ту саму логіку протягом хвилин і секунд (обидва коливаються від 0 до 59). Таким чином, ми отримуємо 3 змінні, які містять таблицю з одним стовпцем:

Отримавши ці 3 таблиці, вам просто потрібно з’єднати їх між собою та додати додатковий стовпець, що містить час (вам потрібно, щоб цей стовпець об’єднався з таблицею фактів):

Отримана таблиця (після зміни типу даних на Time) містить 86.400 рядків і виглядає так:

Якщо секунди занадто детальні, ви можете їх пропустити (зверніть увагу на `0` у функції" Час "):

А якщо вам не потрібна детальніша деталізація, скажімо, 15 хвилин (00:15, 00:30,…, 23:30, 23:45), ви можете змінити визначення MinuteTable (зверніть увагу на 3-й параметр у функції GENERATESERIES ):

Останнє: ви можете додати додаткові стовпці, щоб створити додаткові рівні групування:

Модель Power BI

Після того, як ваш графік роботи буде готовий, ви зможете зв’язати його з таблицею фактів. Для цього вам потрібно мати час у вашій таблиці фактів як окремий стовпець і пов’язати його зі стовпцем часу в таблиці часу. У цьому прикладі ви бачите, що таблиця фактів `Fitbit2019` пов'язана як з датою, так і з таблицею часу:

Повний код

Ви хочете переглянути покрокове відео? Просто перегляньте наш посібник.