Вирази аналізу даних (DAX) має 35 функцій, спеціально для збирання та порівняння даних із часом. На відміну від функцій дати й часу DAX, функції Time-intelligence насправді не мають схожих функцій Excel. Це тому, що функції часового аналізу працюють із даними, які постійно змінюються, залежно від контексту, вибраного у зведених таблицях і графічних відображеннях Power View.
Щоб працювати з функціями часового аналізу, потрібно додати таблицю дат до моделі даних. Таблиця дат має містити стовпець з одним рядком для кожного дня, який містить дані. Цей стовпець вважається стовпцем Дата (хоча його можна назвати будь-яким чином). Для багатьох функцій часового інтелекту для обчислення відповідно до дат, вибраних як поля у звіті, потрібен стовпець дат. Наприклад, якщо у вас є міра, яка обчислює закриття балансу на кінець кварталу за допомогою функції CLOSINGBALANCEQTR, щоб надбудова Power Pivot знала, що насправді є кінець кварталу, вона має посилатися на стовпець дати в таблиці дат, щоб дізнатися, коли початок і кінець кварталу починається та завершиться. Докладні відомості про таблиці дат див. в статтях Загальні відомості про таблиці дат і їх створення в надбудові Power Pivot Excel.
Функції
Функції, які повертають одну дату
Функції в цій категорії повертають одну дату. Після цього результат можна використовувати як аргументи для інших функцій.
Перші дві функції в цій категорії повертають першу або останню дату в Date_Column поточному контексті. Це може бути корисно, якщо потрібно знайти першу або останню дату транзакції певного типу. Ці функції мають лише один аргумент – ім'я стовпця дат у таблиці дат.
У наступних двох функціях цієї категорії буде виявлено першу або останню дату (або будь-яке інше значення стовпця), коли вираз має непусте значення. Це найчастіше використовується в таких ситуаціях, як запаси, де потрібно отримати останню суму запасів, і ви не знаєте, коли було створено останній запас.
-
FIRSTNONBLANK (Date_Column;вираз)
-
LASTNONBLANK (Date_Column;вираз)
Ще шість функцій, які повертають одну дату, – це функції, які повертають першу або останню дату місяця, кварталу або року в поточному контексті обчислення.
-
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, кожна функція приймає стовпець дат як один із аргументів.
Перші вісім функцій у цій категорії починаються зі стовпця дат у поточному контексті. Наприклад, якщо міра використовується у зведеній таблиці, підписи стовпців або рядків можуть мати місяць або рік. Net effect is the date column is filtered to include only the dates for the current context. Починаючи з цього поточного контексту, ці вісім функцій обчислювані попередній (або наступний) день, місяць, квартал або рік і повертають ці дати у вигляді таблиці з одним стовпцем. Попередні функції працюють від першої дати в поточному контексті, а функції "далі" переміщаються вперед від останньої дати в поточному контексті.
-
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, Interval)
-
DATESBETWEEN (Date_Column; Start_Date; End_Date)
-
DATESINPERIOD (Date_Column, Start_Date, Number_of_Intervals, Interval)
-
PARALLELPERIOD (Date_Column, Number_of_Intervals, Interval)
DATESBETWEEN обчислює набір дат між вказаною датою початку та датою завершення. Решта трьох функцій змінювали певну кількість часового інтервалу з поточного контексту. Інтервал може бути днем, місяцем, кварталом або роком. За допомогою цих функцій можна зсунути часовий інтервал для обчислення на будь-яку з наведених нижче функцій.
-
Повернення на два роки
-
Повернутися на один місяць
-
Перейти вперед у три квартали
-
Назад 14 днів
-
Перейти на 28 днів вперед
У кожному випадку потрібно лише вказати, який інтервал і скільки цих інтервалів потрібно перемикати. Додатний інтервал переміститься вперед у часі, а від'ємний інтервал переміститься назад у часі. Сам інтервал визначається ключовим словом DAY, MONTH, QUARTER або YEAR. Ці ключові слова не є рядками, тому їх не слід узяти в лапки.
Функції, які оцінюють вирази за період часу
Ця категорія функцій обчислює вираз за вказаний період часу. Це ж можна зробити за допомогою функції CALCULATE та інших функцій часового аналетування. Наприклад,
= TOTALMTD (вираз, Date_Column [, Установитифільтр])
має такий самий же вираз, як:
= CALCULATE (expression, DATESMTD (Date_Column)[, SetFilter])
Проте використовувати ці функції часового інтелекту простіше, коли вони добре підходять для вирішення проблеми, яку потрібно вирішити.
-
TOTALMTD (вираз, Date_Column [, Установитифільтр])
-
TOTALQTD (вираз, Date_Column [, Установитифільтр])
-
TOTALYTD (вираз, Date_Column [, Установитифільтр] [,YE_Date]) *
Ця категорія також є групою функцій, які обчислюються баланси на відкриття та закриття. Є певні поняття, які слід розуміти з цими конкретними функціями. По-перше, як ви можете подумати, початковий баланс за будь-який період збігатиується із закриттям балансу за попередній період. Баланс закриття включає всі дані до кінця періоду, а баланс рахунку не включає дані з поточного періоду.
Ці функції завжди повертають значення виразу, обчисленого для певного пункту часу. Ми завжди радимо вказати останнє можливе значення дати в календарний період. Баланс відкриття базується на останній даті попереднього періоду, а баланс закриття базується на останній даті поточного періоду. Поточний період завжди визначається останньою датою в контексті поточної дати.
-
OPENINGBALANCEMONTH (вираз, Date_Column [,Установитифільтр])
-
OPENINGBALANCEQUARTER Квартал (вираз, Date_Column [,Установитифільтр])
-
OPENINGBALANCEYEAR (Expression, Date_Column [,SetFilter] [,YE_Date])
-
CLOSINGBALANCEMONTH (вираз, Date_Column [,Установитифільтр])
-
CLOSINGBALANCEQUARTER (Expression, Date_Column [,SetFilter])
-
CLOSINGBALANCEYEAR (Expression, Date_Column [,SetFilter] [,YE_Date])
Додаткові ресурси
Статті: Докладні відомості про таблиці дат і їх створення в надбудові Power Pivot Excel
Довідник із функцій DAXна сайті Office.com
Приклади: моделювання прибутків і втрат даних і аналіз даних за допомогою microsoft PowerPivot у Excel