Розуміння основної функції: 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])
)
Ця формула агрегує продажі за весь попередній рік, незалежно від поточного контексту дати.
PREVIOUSDAY: Зсув дат на один день
Функція PREVIOUSDAY повертає дату з попереднього дня. Її синтаксис:
DAX
PREVIOUSDAY()
Ця функція еквівалентна DATEADD(, -1, DAY)
.
Приклад використання PREVIOUSDAY
Щоб обчислити продажі за попередній день, можна використати:
DAX
Sales Previous Day =
CALCULATE(
SUM(Sales[Amount]),
PREVIOUSDAY(Sales[Date])
)
Ця формула зсуває дату назад на один день, даючи вам продажі за попередній день.
PREVIOUSMONTH: Зсув дат на один місяць
Функція PREVIOUSMONTH повертає всі дати з попереднього місяця, виходячи з поточного контексту. Її синтаксис:
DAX
PREVIOUSMONTH()
Ця функція еквівалентна DATEADD(, -1, MONTH)
, але повертає всі дати з попереднього місяця.
Приклад використання PREVIOUSMONTH
Щоб обчислити загальні продажі за попередній місяць, можна використати:
DAX
Total Sales Previous Month =
CALCULATE(
SUM(Sales[Amount]),
PREVIOUSMONTH(Sales[Date])
)
Ця формула агрегує продажі за весь попередній місяць, незалежно від поточного контексту дати.
Як запам'ятати ці функції
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