Россия Нет

DATESYTD, DATESQTD и DATESMTD — DAX функции категории time intelligence, возвращающие даты текущего периода в Power BI и Power Pivot

 Содержание статьи: (кликните, чтобы перейти к соответствующей части статьи):


Приветствую Вас, дорогие друзья, с Вами Будуев Антон. В этой статье мы разберем 3 функции, входящие в категорию time intelligence (логики операций с датами и временем) в DAX. А именно, рассмотрим DATESYTD, DATESQTD и DATESMTD в Power BI и PowerPivot.

Все эти 3 функции, в соответствии со своими названиями, возвращают даты от начала года, квартала и месяца до текущей даты текущего контекста.

Для Вашего удобства, рекомендую скачать «Справочник DAX функций для Power BI и Power Pivot» в PDF формате.

Если же в Ваших формулах имеются какие-то ошибки, проблемы, а результаты работы формул постоянно не те, что Вы ожидаете и Вам необходима помощь, то записывайтесь в бесплатный экспресс-курс «Быстрый старт в языке функций и формул DAX для Power BI и Power Pivot».

 

DAX функции DATESYTD, DATESQTD и DATESMTD в Power BI и Power Pivot

DATESYTD () — создает таблицу, со столбцом из дат от начала года до текущего дня в рамках текущего контекста.
DATESQTD () — создает таблицу, со столбцом из дат от начала квартала до текущего дня в рамках текущего контекста.
DATESMTD () — создает таблицу, со столбцом из дат от начала месяца до текущего дня в рамках текущего контекста.

Синтаксис:

DATESYTD ([Дата]; "Конец Года")
DATESQTD ([Дата])
DATESMTD ([Дата])

Где:

  • [Дата] — столбец из дат или выражений, возвращающих даты
  • «Конец Года» — текстовая дата, записанная в виде «01/05» («день/месяц»). Определяет дату окончания года (по умолчанию 31 декабря). Необязательный параметр.

! — Для безошибочной работы функций DATESYTD, DATESQTD и DATESMTD необходимо в качестве их параметров [Дата] использовать столбец из календаря непрерывных дат в Power BI, то есть, создавать отдельную связанную таблицу «Календарь» с непрерывным перечислением всех дат.

 

Пример формул на основе группы time intelligence функций DATES (YTD, QTD и MTD)

В Power BI Desktop имеется модель данных, состоящая из 2 связанных таблиц: таблицы фактов «Продажи» и таблицы измерений (справочник) «Календарь»:

 

Таблица «Продажи» содержит даты и суммы продаж за 2 года, начиная с 1 января 2017 года, заканчивая 31 декабря 2018 года:

 

Таблица «Календарь» содержит в себе неразрывный набор дат за эти 2 года с шагом в 1 день. Она не является исходной. Календарь был создан мною специально (как создавать календари в Power BI читайте в этой статье), так как функции DATESYTD, DATESQTD и DATESMTD не могут работать напрямую со столбцом дат в таблице «Продажи» и для их функционирования нужна отдельная связанная таблица с неразрывными датами:

 

В качестве примера работы рассматриваемых функций, давайте напишем формулы расчета накопительной суммы продаж от начала года, от начала квартала, от начала месяца до текущей даты текущего контекста. А затем, выведем эти формулы в визуализациях в Power BI Desktop.

Итак, формулы расчета накопительной суммы продаж на основе функции DATESYTD, DATESQTD и DATESMTD будут следующими:

Итого С Начала Года = 
CALCULATE (
    SUM ('Продажи'[СуммаПродаж]);
    DATESYTD ('Календарь'[Date])
)

Итого С Начала Квартала = 
CALCULATE (
    SUM ('Продажи'[СуммаПродаж]);
    DATESQTD ('Календарь'[Date])
)

Итого С Начала Месяца = 
CALCULATE (
    SUM ('Продажи'[СуммаПродаж]);
    DATESMTD ('Календарь'[Date])
)

Где:

  • сумму продаж мы посчитали при помощи функции SUM
  • таблицы с соответствующим набором дат нам возвратили, рассматриваемые в этой статье, time intelligence функции
  • и, соблюдение условия «расчет суммы продаж накопительным итогом с начала периода и до текущей даты» нам позволила создать DAX функция CALCULATE, внутрь которой мы и встроили остальные функции из наших формул

Итак, результатом выполнения формулы на основе функции DATESYTD, в Power BI будет сводная таблица, где, действительно, сумма продаж накапливается каждый месяц в течение всего года, и как только год закончился, сумма сбросилась и далее со следующего года она опять начала накапливаться:

 

С формулой на основе функции DATESQTD та же самая история — в Power BI будет сводная таблица, где сумма продаж накапливается каждый месяц в течение конкретного квартала, и как только квартал заканчивается, сумма сбрасывается и далее со следующего квартала она опять начинает накапливаться:

 

Соответственно, точно такой же результат будет и у формулы на основе функции DATESMTD — в Power BI будет сводная таблица, где сумма продаж накапливается каждый день в течение всего месяца, и как только месяц заканчивается, сумма сбрасывается и далее со следующего месяца она вновь начинает накапливаться:

 

На этом, с разбором time intelligence функций в DAX: DATESYTD, DATESQTD и DATESMTD, возвращающих даты текущего года, квартала и месяца в рамках текущего контекста в Power BI и PowerPivot, в этой статье все.

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

Пожалуйста, оцените статью:

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(11 голосов, в среднем: 5 из 5 баллов)
[Экспресс-видеокурс] Быстрый старт в языке DAX

 
 
Антон БудуевУспехов Вам, друзья!
С уважением, Будуев Антон.
Проект «BI — это просто»
 
 
 
 

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

 
Понравился материал статьи?
Избранные закладкиДобавьте эту статью в закладки Вашего браузера, чтобы вернуться к ней еще раз. Для этого, прямо сейчас нажмите на клавиатуре комбинацию клавиш Ctrl+D

Автор статьи:
Категория: Язык функций и формул DAX для Power BI и Excel (Power Pivot)

Добавить комментарий

* Заполняя форму отправки комментария своими персональными данными (имя, email, сайт и др.), Вы автоматически подтверждаете свое согласие на обработку своих персональных данных