Содержание статьи: (кликните, чтобы перейти к соответствующей части статьи):
- DAX функции DATESYTD, DATESQTD и DATESMTD в Power BI и PowerPivot
- Пример формул на основе группы time intelligence функций DATES (YTD, QTD и MTD)
Приветствую Вас, дорогие друзья, с Вами Будуев Антон. В этой статье мы разберем 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, в этой статье все.
Переходите к следующей статье, где мы разберем похожие функции, но которые, в свою очередь, уже выводят не даты, а вычисляют необходимое выражение в текущем периоде.
Пожалуйста, оцените статью:
Успехов Вам, друзья!
С уважением, Будуев Антон.
Проект «BI — это просто»
Если у Вас появились какие-то вопросы по материалу данной статьи, задавайте их в комментариях ниже. Я Вам обязательно отвечу. Да и вообще, просто оставляйте там Вашу обратную связь, я буду очень рад.
Также, делитесь данной статьей со своими знакомыми в социальных сетях, возможно, этот материал кому-то будет очень полезен.
Понравился материал статьи?
Добавьте эту статью в закладки Вашего браузера, чтобы вернуться к ней еще раз. Для этого, прямо сейчас нажмите на клавиатуре комбинацию клавиш Ctrl+D