Интелигентно време в Power Pivot в Excel

Отнася се за
Excel за Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Изразите за анализ на данни (DAX) имат 35 функции, специално за агрегиране и сравняване на данни във времето. За разлика от функциите за дата и час на DAX, функциите за интелигентно време всъщност нямат нищо подобно в Excel. Това е така, защото функциите за интелигентно време работят с данни, които непрекъснато се променят в зависимост от контекста, който изберете в обобщените таблици и визуализациите на Power View.

За да работите с функции за интелигентно време, трябва в модела на данните да е включена таблица с дати. Таблицата с дати трябва да включва колона с по един ред за всеки ден от всяка година, включен във вашите данни. Тази колона се счита за колона за дата (макар че може да бъде наречена както искате). Много функции за интелигентно време изискват колоната с дата, за да се изчисляват според датите, които сте избрали като полета в отчет. Ако например имате мярка, която изчислява крайния баланс на крайното тримесечие с помощта на функцията CLOSINGBALANCEQTR, за да може Power Pivot да знае кога наистина е краят на тримесечието, той трябва да препраща към колоната с дати в таблицата с дати, за да знае кога започва и свършва тримесечието. За да научите повече за таблиците с дати, прегледайте "Разбиране и създаване на таблици с дати в Power Pivot в Excel".

Функции

Функции, които връщат единична дата

Функциите от тази категория връщат една дата. Резултатът след това може да се използва като аргументи на други функции.

Първите две функции в тази категория връщат първата или последната дата в Date_Column в настоящия контекст. Това може да е полезно, когато искате да намерите първата или последната дата, на която сте осъществили транзакция от определен тип. Тези функции приемат само един аргумент – името на колоната с дати в таблицата с дати.

Следващите две функции в тази категория намират първата или последната дата (или също и друга стойност на колона), където даден израз има непразна. Това най-често се използва в ситуации като наличности, където искате да получите последното количество наличности и не знаете кога е направена последната наличност.

Още шест функции, които връщат единична дата, са тези, които връщат първата или последната дата на месец, тримесечие или година в текущия контекст на изчислението.

Функции, които връщат таблица с дати

Има шестнадесет функции за интелигентно време, които връщат таблица с дати. Най-често тези функции ще се използват като аргумент на SetFilter за функцията CALCECT . Както всички функции за интелигентно време в DAX, всяка функция приема колона с дата като един от своите аргументи.

Първите осем функции в тази категория започват с колона за дата в текущ контекст. Например ако използвате мярка в обобщена таблица, може да има месец или година в етикетите на колоните, или в етикетите на редове. Нетният ефект е, че колоната с дати е филтрирана, за да включва само датите за текущия контекст. Започвайки от този текущ контекст, тези осем функции след това изчисляват предишния (или следващия) ден, месец, тримесечие или година и връщат тези дати под формата на таблица с една колона. Предишните функции работят назад от първата дата в настоящия контекст, а функциите "next" се движат напред от последната дата в настоящия контекст.

Следващите четири функции в тази категория са подобни, но вместо да изчисляват предишен (или следващия) период, те изчисляват набора от дати в периода, който е "месец до днес" (или тримесечие до днес, или година до днес, или в същия период на предишната година). Всички тези функции извършват изчисленията си, като използват последната дата в настоящия контекст. Обърнете внимание, че SAMEPERIODLASTYEAR изисква текущият контекст да съдържа последователен набор от дати. Ако текущият контекст не е последователен набор от дати, SAMEPERIODLASTYEAR ще върне грешка.

Последните четири функции в тази категория са малко по-сложни и малко по-мощни. Тези функции се използват за преминаване от набор от дати, които са в настоящия контекст, към нов набор от дати.

  • DATEADD (Date_Column, Number_of_Intervals, Интервал)
  • DATESBETWEEN (Date_Column, Start_Date, End_Date)
  • DATESINPERIOD (Date_Column, Start_Date, Number_of_Intervals, интервал)

DATESBETWEEN изчислява набора от дати между зададената начална и крайна дата. Останалите три функции изместват известен брой времеви интервали от настоящия контекст. Интервалът може да бъде ден, месец, тримесечие или година. Тези функции улесняват изместването на времевия интервал за изчисление по едно от следните неща:

  • Връщане две години назад
  • Връщане един месец назад
  • Отиване напред с три тримесечия
  • Връщане 14 дни назад
  • Отиване на 28 дни напред

Във всеки случай трябва само да зададете кой интервал и на брой от тези интервали да се измести. Положителният интервал ще се придвижва напред във времето, докато отрицателният интервал ще се придвижва назад във времето. Самият интервал се задава с ключова дума "ден", "месец", "тримесечие" или "година". Тези ключови думи не са низове, така че не трябва да са в кавички.

Функции, които оценяват изрази за определен период от време

Тази категория функции изчислява израз за определен период от време. Можете да постигнете същото, като използвате CALCULATE и други функции за интелигентно време. Например

= TOTALMTD (израз, Date_Column [, SetFilter])

е точно същото като:

= CALCULATE (израз, DATESMTD (Date_Column)[, SetFilter])

По-лесно е обаче да се използват тези функции за интелигентно време, когато те са подходящи за решаване на проблема, който трябва да бъде решен:

  • TOTALMTD (израз, Date_Column [, SetFilter])
  • TOTALQTD (израз, Date_Column [, SetFilter])
  • TOTALYTD (израз, Date_Column [, SetFilter] [,YE_Date]) *

Също така в тази категория са включени група функции, които изчисляват начални и крайни баланси. Има определени концепции, които трябва да разберете за тези конкретни функции. Първо, както може би си мислите за очевидно, началният баланс за всеки период е същият като крайния баланс за предишния период. Балансът при затваряне включва всички данни до края на периода, докато началният баланс не включва данни от текущия период.

Тези функции винаги връщат стойността на израз, изчислен за определен момент от време. Моментът, който ни интересува, винаги е последната възможна стойност на дата в календарен период. Началният баланс се изчислява на базата на последната дата от предишния период, докато крайният баланс се базира на последната дата от текущия период. Текущият период винаги се определя от последната дата в контекста на текущата дата.

Допълнителни ресурси

Статии: Разбиране и създаване на таблици с дати в Power Pivot в Excel

Справка: Справка за функциите на DAX в Office.com

Примери: Моделиране и анализ на данни за печалби и загуби с Microsoft PowerPivot в Excel