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

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

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

Функции

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

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

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

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

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

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

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

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

Следующие четыре функции в этой категории аналогичны, но вместо того, чтобы вычислять предыдущий (или следующий) период, они рассчитывают набор дат в периоде "с начала месяца" (или за квартал или с начала года или за тот же период прошлого года). Эти функции выполняют расчеты с использованием последней даты в текущем контексте. Обратите внимание, что для 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 дней

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

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

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

= 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

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

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

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

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

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

×