Вирази аналізу даних (DAX) містять 35 функцій, спеціально для агрегації та порівняння даних із часом. На відміну від функцій дати й часу DAX, функції часового аналізу насправді не мають нічого подібного в Excel. Це пов'язано з тим, що функції часового аналізу працюють із даними, які постійно змінюються залежно від контексту, вибраного у зведених таблицях і візуалізаціях Power View.
Щоб працювати з функціями часового аналізу, потрібно включити таблицю дат до моделі даних. Таблиця дат має містити стовпець з одним рядком для кожного дня кожного року, включеного в дані. Цей стовпець вважається стовпцем Дата (хоча його можна назвати будь-яким чином). Для багатьох функцій часового аналізу потрібен стовпець дат, щоб обчислити дані відповідно до вибраних дат як полів у звіті. Наприклад, якщо у вас є міра, яка обчислює кінцевий баланс за допомогою функції CLOSINGBALANCEQTR, щоб надбудова Power Pivot знала, коли насправді кінець кварталу, вона має посилатися на стовпець дат у таблиці дат, щоб дізнатися, коли починається та закінчується квартал. Докладні відомості про таблиці дат див. в статті Розуміння та створення таблиць дат у надбудові Power Pivot у програмі Excel.
Функції
Функції, які повертають одну дату
Функції в цій категорії повертають одну дату. Після цього результат можна використовувати як аргументи для інших функцій.
Перші дві функції в цій категорії повертають першу або останню дату в Date_Column в поточному контексті. Це може бути корисно, коли потрібно знайти першу або останню дату, на якій було здійснено транзакцію певного типу. Ці функції приймають лише один аргумент – ім'я стовпця дати в таблиці дат.
Наступні дві функції в цій категорії знаходять першу або останню дату (або будь-яке інше значення стовпця), де вираз має непусте значення. Це найчастіше використовується в таких ситуаціях, як інвентаризація, де ви хочете отримати останню суму запасів, і ви не знаєте, коли остання інвентаризація була прийнята.
-
FIRSTNONBLANK (Date_Column, expression)
-
LASTNONBLANK (Date_Column, expression)
Ще шість функцій, які повертають одну дату, – це функції, які повертають першу або останню дату місяця, кварталу або року в межах поточного контексту обчислення.
-
STARTOFMONTH (Date_Column)
-
STARTOFQUARTER (Date_Column)
-
STARTOFYEAR (Date_Column [,YE_Date])
-
ENDOFMONTH (Date_Column)
-
ENDOFQUARTER (Date_Column)
-
ENDOFYEAR (Date_Column [,YE_Date])
Функції, які повертають таблицю дат
Є шістнадцять функцій часового аналізу, які повертають таблицю дат. Найчастіше ці функції використовуватимуться як аргумент SetFilter для функції CALCULATE . Так само, як і всі функції часового аналізу в DAX, кожна функція приймає стовпець дат як один зі своїх аргументів.
Перші вісім функцій у цій категорії починаються зі стовпця дати в поточному контексті. Наприклад, якщо у зведеній таблиці використовується міра, підписи стовпців або рядків можуть містити місяць або рік. Чистий ефект – це стовпець дат, відфільтрований за датами для поточного контексту. Починаючи з поточного контексту, ці вісім функцій потім обчислюють попередній (або наступний) день, місяць, квартал або рік і повертають ці дати у вигляді таблиці з одним стовпцем. Попередні функції працюють назад від першої дати в поточному контексті, а функції "next" – від останньої дати в поточному контексті.
-
PREVIOUSDAY (Date_Column)
-
PREVIOUSMONTH (Date_Column)
-
PREVIOUSQUARTER (Date_Column)
-
PREVIOUSYEAR (Date_Column [,YE_Date])
-
NEXTDAY (Date_Column)
-
NEXTMONTH (Date_Column)
-
NEXTQUARTER (Date_Column)
-
NEXTYEAR (Date_Column [,YE_Date])
Наступні чотири функції в цій категорії схожі, але замість того, щоб обчислювати попередній (або наступний) період, вони обчислюють набір дат у періоді, який має значення "місяць до дати" (або квартал до дати, або рік до дати, або в той же період попереднього року). Усі ці функції виконують обчислення, використовуючи останню дату в поточному контексті. Зверніть увагу, що для функції SAMEPERIODLASTYEAR потрібно, щоб поточний контекст містив суцільний набір дат. Якщо поточний контекст не є суцільним набором дат, функція SAMEPERIODLASTYEAR поверне помилку.
-
DATESMTD (Date_Column)
-
DATESQTD (Date_Column)
-
DATESYTD (Date_Column [,YE_Date])
-
SAMEPERIODLASTYEAR (Date_Column)
Останні чотири функції в цій категорії дещо складніші, а також дещо потужніші. Ці функції використовуються, щоб переходити від набору дат у поточному контексті до нового набору дат.
-
DATEADD (Date_Column, Number_of_Intervals, інтервал)
-
DATESBETWEEN (Date_Column, Start_Date, End_Date)
-
DATESINPERIOD (Date_Column, Start_Date, Number_of_Intervals, інтервал)
-
PARALLELPERIOD (Date_Column, Number_of_Intervals, interval)
Функція DATESBETWEEN обчислює набір дат між вказаною датою початку та датою завершення. Решта три функції переміщують певну кількість часових інтервалів із поточного контексту. Інтервал може бути днем, місяцем, кварталом або роком. Ці функції спрощує зміщення інтервалу часу для обчислення на будь-яку з наведених нижче функцій.
-
Повернутися на два роки
-
Повернутися на один місяць
-
Перейти вперед на три чверті
-
Повернутися на 14 днів
-
Перейти вперед на 28 днів
У кожному випадку потрібно вказати лише інтервал і кількість з цих інтервалів, які потрібно зсунути. Додатний інтервал буде рухатися вперед у часі, а від'ємний інтервал буде переміщено назад у часі. Сам інтервал визначається ключовим словом DAY, MONTH, QUARTER або YEAR. Ці ключові слова не є рядками, тому вони не повинні бути в лапках.
Функції, які оцінюють вирази за певний період часу
Ця категорія функцій обчислює вираз протягом указаного періоду часу. Це можна зробити за допомогою функції CALCULATE та інших функцій часового аналізу. Наприклад,
= TOTALMTD (вираз, Date_Column [, SetFilter])
точно такий самий, як і:
= CALCULATE (вираз, DATESMTD (Date_Column)[, SetFilter])
Проте простіше використовувати ці функції часового аналізу, коли вони добре підходять для вирішення проблеми, яку потрібно вирішити.
-
TOTALMTD (вираз, Date_Column [, SetFilter])
-
TOTALQTD (вираз, Date_Column [, SetFilter])
-
TOTALYTD (вираз, Date_Column [, SetFilter] [,YE_Date]) *
Також у цій категорії є група функцій, які обчислюють початкові та закривні залишки. Є певні поняття, які ви повинні розуміти з цими конкретними функціями. По-перше, як ви вважаєте очевидними, початковий баланс для будь-якого періоду такий самий, як і кінцевий баланс за попередній період. Кінцевий баланс включає всі дані до кінця періоду, в той час як початковий баланс не включає дані з поточного періоду.
Ці функції завжди повертають значення виразу, обчисленого для певної точки часу. Ми постійно переймаємося тим, що завжди остання можлива дата в календарному періоді. Початковий баланс базується на останній даті попереднього періоду, а кінцевий баланс базується на останній даті поточного періоду. Поточний період завжди визначається останньою датою в поточному контексті дати.
-
OPENINGBALANCEMONTH (вираз, Date_Column [,SetFilter])
-
ВІДКРИТТЯ БАЛАНСУКВАРТИР Квартал (вираз, Date_Column [,SetFilter])
-
OPENINGBALANCEYEAR (Вираз, Date_Column [,SetFilter] [,YE_Date])
-
CLOSINGBALANCEMONTH (вираз, Date_Column [,SetFilter])
-
CLOSINGBALANCEQUARTER (вираз, Date_Column [,SetFilter])
-
CLOSINGBALANCEYEAR (Вираз, Date_Column [,SetFilter] [,YE_Date])
Додаткові ресурси
Статті: розуміння та створення таблиць дат у надбудові Power Pivot у програмі Excel
Довідка: Посилання на функцію DAXна Office.com
Приклади: моделювання й аналіз даних про прибуток і збитки за допомогою Microsoft PowerPivot у програмі Excel