Логика операций со временем в PowerPivot для Excel

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

Выражения анализа данных (DAX) включают в себя 35 функций, предназначенных для статистической обработки и сравнения данных с течением времени. В отличие от функций даты и времени в DAX функции логики операций со временем не имеют аналогов в Excel. Это связано с тем, что эти функции работают с данными, которые постоянно изменяются в зависимости от контекста, выбранного в сводных таблицах и визуализации Power View.

Для работы с функциями логики операций со временем необходимо включить таблицу дат в модель данных. Таблица дат должна включать столбец с одной строкой для каждого дня каждого года, включенного в данные. Этот столбец считается столбцом "Дата" (хотя его можно назвать как угодно). Многие функции операций со временем используют столбец "Дата" для вычисления в соответствии с датами, выбранными в качестве полей в отчете. Например, если у вас есть мера, которая вычисляет баланс на конец периода с помощью функции КЛОСИНГБАЛАНЦЕКТР, чтобы Power Pivot знали, когда вы действительно хотите завершить работу с кварталом, он должен ссылаться на столбец "Дата" в таблице дат, чтобы узнать, когда квартал Начало и завершение. Дополнительные сведения о таблицах дат см. в статье понимание и создание таблиц дат в Power Pivot в Excel.

Функции

Функции, которые возвращают одну дату

Функции, относящиеся к этой категории, возвращают только одну дату. Результат затем может использоваться в качестве аргумента в других функциях.

Первые две функции в этой категории возвращают первую или последнюю дату в столбце дат в текущем контексте. Это может быть полезно, когда нужно найти первую или последнюю дату, в которую имела место операция определенного типа. Эта функция использует только один аргумент — имя столбца дат в таблице дат.

Следующие две функции в этой категории выполняют поиск первой или последней даты (или любого другого значения столбца), при которой выражение имеет непустое значение. Эта функция чаще всего используется в таких ситуациях, как инвентаризация, когда нужно определить количество единиц при последней инвентаризации, причем неизвестно, когда инвентаризация проводилась в последний раз.

Еще шесть функций, которые возвращают одну дату, представляют собой функции, возвращающие первую или последнюю дату месяца, квартала или года в текущем контексте вычисления.

Функции, которые возвращают таблицу дат

Существует шестнадцать функций логики операций со временем, которые возвращают таблицу дат. Чаще всего они используются в качестве аргумента SetFilter в функции CALCULATE. Подобно всем другим функциям логики операций со временем в DAX каждая из них использует столбец даты в качестве одного из своих аргументов.

Первые восемь функций этой категории начинаются со столбца Date в текущем контексте. Например, при использовании показателя в сводной таблице может быть месяц или год в названиях столбцов или названиях строк. "Чистый" — столбец "Дата" фильтруется, чтобы он включил только даты текущего контекста. Начиная с текущего контекста эти восемь функций вычисляют предыдущий (или следующий) день, месяц, квартал или год и возвращают эти даты в виде таблицы с одним столбцом. Функции "назад" работают назад от первой даты текущего контекста, а функции "Далее" — вперед от последней даты в текущем контексте.

Следующие четыре функции в этой категории схожи, но вместо вычисления предшествующего (или следующего) периода, они вычисляют набор дат в период с начала месяца (с начала квартала, с начала года или в тот же период предыдущего года). Все эти функции выполняют вычисления, используя последнюю дату в текущем контексте. Обратите внимание: для функции SAMEPERIODLASTYEAR текущий контекст должен содержать непрерывный набор дат. Если текущий контекст не является непрерывным набором дат, функция SAMEPERIODLASTYEAR возвращает ошибку.

Последние четыре функции в этой категории являются чуть более сложными, но вместе с тем и более эффективными. Они используются для перехода от набора дат в текущем контексте к новому набору дат.

  • DateAdd (Дате_колумн, Нумбер_оф_интервалс, интервал)

  • DATESBETWEEN (Дате_колумн, нач_дата, кон_дата)

  • DATESINPERIOD (Дате_колумн, нач_дата, Нумбер_оф_интервалс, Interval)

  • PARALLELPERIOD (Дате_колумн, Нумбер_оф_интервалс, интервал)

Функция DATESBETWEEN вычисляет набор дат между указанными начальной и конечной датой. Остальные три функции осуществляют переход на некоторое количество интервалов времени относительно текущего контекста. В качестве интервала можно указать день, месяц, квартал или год. Эти функции позволяют легко перенести временной интервал для вычисления на любой из указанных ниже сроков.

  • Назад на два года.

  • Назад на один месяц.

  • Вперед на три квартала.

  • Назад на 14 дней.

  • Вперед на 28 дней.

В каждом конкретном случае для выполнения переноса необходимо указать только конкретный интервал и их количество. Положительный интервал приведет к сдвигу во времени вперед, в то время как отрицательный интервал будет перемещать набор дат назад во времени. Сам интервал указывается с помощью ключевого слова — DAY (день), MONTH (месяц), QUARTER (квартал) или YEAR (год). Эти ключевые слова не являются строками, поэтому заключать их в кавычки не требуется.

Функции для оценки выражений за некоторый период

Эта категория функций выполняет оценку выражения в течение указанного периода. Подобных результатов можно добиться с помощью функции CALCULATE и других функций логики операций со временем. Например, выражение

= TOTALMTD (выражение, столбец_дат [, SetFilter])

возвращает такой же результат, что и выражение

= CALCULATE (выражение, DATESMTD (столбец_дат)[, SetFilter]).

Однако иногда в зависимости от проблемы, которую необходимо решить, проще использовать эти функции логики операций со временем.

  • TOTALMTD (Выражение, Дате_колумн [, SetFilter])

  • TOTALQTD (Выражение, Дате_колумн [, SetFilter])

  • TOTALYTD (Выражение, Дате_колумн [, SetFilter] [, Е_дате]) *

Также к этой категории относится группа функций для вычисления начального и конечного баланса. Существуют определенные принципы, которые необходимо понимать при использовании данных функций. Во-первых, хоть это и может показаться очевидным, начальный баланс за любой период представляет собой то же самое, что и конечный баланс за предыдущий период. Конечный баланс включает в себя все данные до конца периода, в то время как начальный баланс не содержит никаких данных в пределах текущего периода.

Эти функции всегда возвращают значение выражения, вычисленного для определенного момента времени. Этот момент всегда представляет собой последнее возможное значение даты в календарном периоде. Начальный баланс всегда рассчитывается на последнюю дату предыдущего периода, а конечный баланс — на последнюю дату текущего периода. Текущий период всегда определяется по последней дате в текущем контексте дат.

Дополнительные ресурсы

Статьи: Знакомство с таблицами дат в Power Pivot в Excel

Справка: Справочник по функциям DAXв Office.com

Примеры: моделирование и анализ данных о прибылях и убытках с помощью Microsoft PowerPivot в Excel

Совершенствование навыков работы с Office
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×