Освоєння функцій часового інтелекту в Power BI за допомогою DAX

pic

Розуміння основної функції: DATEADD

Функція DATEADD є основою для багатьох функцій часу в DAX. Вона дозволяє зсувати стовпець дат на вказану кількість інтервалів (днів, місяців, кварталів або років). Синтаксис виглядає так:

DAX

DATEADD(, , )
  • ``: Стовпець, що містить дати.
  • ``: Кількість інтервалів для зсуву (може бути як позитивним, так і негативним).
  • ``: Тип інтервалу (DAY, MONTH, QUARTER, або YEAR).

Приклад використання DATEADD

Припустимо, у вас є таблиця продажів з колонкою Date, і ви хочете обчислити продажі за такий самий період минулого року. Ви можете використати:

DAX

Sales Same Period Last Year =   
CALCULATE(  
 SUM(Sales[Amount]),  
 DATEADD(Sales[Date], -1, YEAR)  
)

Ця формула зсуває стовпець Date на один рік назад, даючи вам продажі за той самий період минулого року.

SAMEPERIODLASTYEAR: Спеціалізована версія DATEADD

Функція SAMEPERIODLASTYEAR є спрощеною версією DATEADD, спеціально створеною для порівняння даних за той самий період минулого року. Її синтаксис:

DAX

SAMEPERIODLASTYEAR()

Ця функція еквівалентна DATEADD(, -1, YEAR).

Приклад використання SAMEPERIODLASTYEAR

Для обчислення продажів за той самий період минулого року можна використати:

DA

Sales Same Period Last Year =   
CALCULATE(  
 SUM(Sales[Amount]),  
 SAMEPERIODLASTYEAR(Sales[Date])  
)

Ця формула дає той самий результат, що й приклад з DATEADD, але є більш інтуїтивно зрозумілою для порівнянь за принципом рік до року.

PREVIOUSYEAR: Інша варіація DATEADD

Функція PREVIOUSYEAR повертає всі дати з попереднього року, виходячи з поточного контексту. Її синтаксис:

DAX

PREVIOUSYEAR()

Ця функція схожа на DATEADD(, -1, YEAR), але повертає всі дати з попереднього року, а не лише з того ж періоду.

Приклад використання PREVIOUSYEAR

Щоб обчислити загальні продажі за попередній рік, можна використати:

DAX

Total Sales Previous Year =   
CALCULATE(  
 SUM(Sales[Amount]),  
 PREVIOUSYEAR(Sales[Date])  
)

Ця формула агрегує продажі за весь попередній рік, незалежно від поточного контексту дати.

pic

PREVIOUSDAY: Зсув дат на один день

Функція PREVIOUSDAY повертає дату з попереднього дня. Її синтаксис:

DAX

PREVIOUSDAY()

Ця функція еквівалентна DATEADD(, -1, DAY).

Приклад використання PREVIOUSDAY

Щоб обчислити продажі за попередній день, можна використати:

DAX

Sales Previous Day =   
CALCULATE(  
 SUM(Sales[Amount]),  
 PREVIOUSDAY(Sales[Date])  
)

Ця формула зсуває дату назад на один день, даючи вам продажі за попередній день.

pic

PREVIOUSMONTH: Зсув дат на один місяць

Функція PREVIOUSMONTH повертає всі дати з попереднього місяця, виходячи з поточного контексту. Її синтаксис:

DAX

PREVIOUSMONTH()

Ця функція еквівалентна DATEADD(, -1, MONTH), але повертає всі дати з попереднього місяця.

Приклад використання PREVIOUSMONTH

Щоб обчислити загальні продажі за попередній місяць, можна використати:

DAX

Total Sales Previous Month =   
CALCULATE(  
 SUM(Sales[Amount]),  
 PREVIOUSMONTH(Sales[Date])  
)

Ця формула агрегує продажі за весь попередній місяць, незалежно від поточного контексту дати.

pic

Як запам'ятати ці функції

1.
1. Почніть з DATEADD: Оскільки DATEADD є найбільш гнучкою функцією, корисно думати про інші функції як про спеціалізовані версії цієї.

  • SAMEPERIODLASTYEAR = DATEADD(, -1, YEAR)
  • PREVIOUSYEAR = DATEADD(, -1, YEAR) (але повертає всі дати з попереднього року)
  • PREVIOUSDAY = DATEADD(, -1, DAY)
  • PREVIOUSMONTH = DATEADD(, -1, MONTH) (але повертає всі дати з попереднього місяця)

2. Зосередьтесь на інтервалі: Кожна функція відповідає за певний інтервал (день, місяць, рік). Запам’ятовування інтервалу допомагає вибрати правильну функцію.

3. Контекст має значення: Деякі функції (як SAMEPERIODLASTYEAR) повертають той самий період у минулому, в той час як інші (як PREVIOUSYEAR) повертають всі дати з попереднього періоду. Звертайте увагу на потрібний контекст.

Висновок

Зрозумівши, як DATEADD є основою для інших функцій часу, ви зможете легко запам’ятати і використовувати SAMEPERIODLASTYEAR, PREVIOUSYEAR, PREVIOUSDAY та PREVIOUSMONTH. Ці функції є потужними інструментами для аналізу на основі часу в Power BI, і з практикою ви зможете застосовувати їх впевнено у своїх звітах.

Якщо ви працюєте в Power BI, спробуйте створити вимірювання за допомогою цих функцій і візуалізувати результати. Скриншоти ваших звітів у Power BI допоможуть зміцнити ваше розуміння та зробити ваш блог більш привабливим для читачів.

Перекладено з: Mastering Power BI DAX Time Intelligence Functions

Leave a Reply

Your email address will not be published. Required fields are marked *