Содержание статьи: (кликните, чтобы перейти к соответствующей части статьи):
- DAX функции NEXTYEAR, NEXTQUARTER, NEXTMONTH и NEXTDAY
- Пример формул на основе группы функций NEXT (YEAR, QUARTER, MONTH и DAY)
Приветствую Вас, дорогие друзья, с Вами Будуев Антон. В этой статье мы продолжим изучать функции логики с датами в DAX. А именно, разберем функции NEXTYEAR, NEXTQUARTER, NEXTMONTH и NEXTDAY, возвращающие даты следующего года, квартала, месяца и дня в Power BI и Power Pivot.
Напомню, в предыдущей статье мы рассматривали противоположные DAX функции, возвращающие предыдущие периоды.
Для Вашего удобства, рекомендую скачать «Справочник DAX функций для Power BI и Power Pivot» в PDF формате.
Если же в Ваших формулах имеются какие-то ошибки, проблемы, а результаты работы формул постоянно не те, что Вы ожидаете и Вам необходима помощь, то записывайтесь в бесплатный экспресс-курс «Быстрый старт в языке функций и формул DAX для Power BI и Power Pivot».
DAX функции NEXTYEAR, NEXTQUARTER, NEXTMONTH и NEXTDAY в Power BI и Power Pivot
Все функции группы NEXT возвращают таблицу со столбцом из дат следующего периода на основе даты текущего контекста. Где, следующий период в:
- NEXTYEAR () — равен следующему году
- NEXTQUARTER () — равен следующему кварталу
- NEXTMONTH () — равен следующему месяцу
- NEXTDAY () — равен следующему дню
Синтаксис:
NEXTYEAR ([Дата]; "Конец Года") NEXTQUARTER ([Дата]) NEXTMONTH ([Дата]) NEXTDAY ([Дата])
Где:
- [Дата] — столбец из дат или выражений (табличных, логических и прочих), возвращающих даты
- «Конец Года» — (необязательный параметр) текстовая дата, записанная в виде «15/06» («день/месяц»). Определяет дату окончания года (по умолчанию «31/12», то есть, 31 декабря).
! — Для безошибочной работы группы функций NEXT необходимо в качестве их параметров [Дата] использовать столбец из календаря непрерывных дат в Power BI, то есть, создавать отдельную связанную таблицу «Календарь» с непрерывным перечислением всех дат.
Пример формул на основе функций NEXTYEAR, NEXTQUARTER, NEXTMONTH и NEXTDAY
В качестве практики рассмотрим несколько примеров в Power BI.
Сначала разберем простой пример на основе DAX функции NEXTDAY.
Итак, в Power BI Desktop имеется исходная таблица «Календарь»:
Для наглядности примера, создадим в этой таблице второй столбец со следующими днями, относительно дат в столбце [Дата]. Для этого, составим следующую формулу с участием NEXTDAY:
Следующий День = NEXTDAY ('Календарь'[Дата])
В итоге, эта формула возвратит ожидаемый результат:
где, для текущей даты (например, 1 января) в столбце [Дата] соответствует следующий день (2 января).
Все эти 4 функции NEXTYEAR, NEXTQUARTER, NEXTMONTH и NEXTDAY просто так, в одиночку не применяют. А используют совместно с другими функциями в DAX для создания сложных формул, мер и вычислений.
Соответственно, давайте попробуем разобрать примеры более сложных формул на языке DAX, а конкретно, формулы, рассчитывающие для даты из текущего контекста сумму прибыли следующего (будущего) периода.
В Power BI имеется исходная таблица с информацией по продажам с 1 января 2017 года по 31 декабря 2018 года:
Так как в параметрах функций NEXTYEAR, NEXTQUARTER, NEXTMONTH и NEXTDAY нельзя использовать ссылку на исходный столбец с датами продаж из таблицы «Продажи», а нужно ссылаться на отдельный календарь из непрерывных дат, то создадим в модели данных отдельную таблицу из непрерывных дат «Календарь» и свяжем ее с исходной таблицей «Продажи» (как создавать календари с непрерывными датами Вы можете прочитать в этой статье):
Теперь, можно создать формулы мер, рассчитывающих значение суммы продаж в следующем году, квартале, месяце или дне относительно даты текущего контекста:
Следующий Год = CALCULATE ( SUM ('Продажи'[СуммаПродаж]); NEXTYEAR ('Календарь'[Date]) ) Следующий Квартал = CALCULATE ( SUM ('Продажи'[СуммаПродаж]); NEXTQUARTER ('Календарь'[Date]) ) Следующий Месяц = CALCULATE ( SUM ('Продажи'[СуммаПродаж]); NEXTMONTH ('Календарь'[Date]) ) Следующий День = CALCULATE ( SUM ('Продажи'[СуммаПродаж]); NEXTDAY ('Календарь'[Date]) )
Где:
- сумму продаж мы рассчитали при помощи DAX функции SUM
- следующие периоды возвратили при помощи рассматриваемых функций из группы NEXT
- условие «расчет суммы продаж только за следующие периоды относительно дат текущего контекста» накладывается при помощи функции CALCULATE
Чтобы проверить работу этих формул, создадим на основе них в Power BI Desktop, сводные таблицы:
В сводных таблицах мы можем наблюдать работу функций NEXTYEAR, NEXTQUARTER, NEXTMONTH и NEXTDAY — везде, в рамках периода текущего контекста, возвращены суммы продаж за следующий период.
То есть, для 2017 года возвращена сумма прибыли за следующий 2018 год, для января возвращена сумма прибыли за следующий месяц (февраль) и так далее.
На этом, с разбором функций NEXTYEAR, NEXTQUARTER, NEXTMONTH и NEXTDAY, возвращающих следующий период в Power BI и Power Pivot, в этой статье все.
Пожалуйста, оцените статью:
Успехов Вам, друзья!
С уважением, Будуев Антон.
Проект «BI — это просто»
Если у Вас появились какие-то вопросы по материалу данной статьи, задавайте их в комментариях ниже. Я Вам обязательно отвечу. Да и вообще, просто оставляйте там Вашу обратную связь, я буду очень рад.
Также, делитесь данной статьей со своими знакомыми в социальных сетях, возможно, этот материал кому-то будет очень полезен.
Понравился материал статьи?
Добавьте эту статью в закладки Вашего браузера, чтобы вернуться к ней еще раз. Для этого, прямо сейчас нажмите на клавиатуре комбинацию клавиш Ctrl+D