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


Антон БудуевПриветствую Вас, дорогие друзья, с Вами Будуев Антон. В этой статье мы продолжим изучать функции логики с датами в DAX. А именно, разберем функции NEXTYEAR, NEXTQUARTER, NEXTMONTH и NEXTDAY, возвращающие даты следующего года, квартала, месяца и дня в Power BI и Power Pivot.

Напомню, в предыдущей статье мы рассматривали противоположные DAX функции, возвращающие предыдущие периоды.

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

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

А также, подписывайтесь на наши социальные сети. Потому что именно в них, Вам будут доступны оперативно и каждый день наши актуальные фишки, секреты, наработки, примеры, кейсы, полезные советы, видео и статьи по темам сквозной BI аналитики (Power BI, DAX, Power Pivot, Excel…): Вконтакте, Инстаграм, Фейсбук, YouTube.

 

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 ('Календарь'[Дата])

В итоге, эта формула возвратит ожидаемый результат:

Результат работы формулы в Power BI на основе DAX функции 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, сводные таблицы:

Результат работы формул в Power BI на основе DAX функций NEXTYEAR, NEXTQUARTER, NEXTMONTH и NEXTDAY

 

В сводных таблицах мы можем наблюдать работу функций NEXTYEAR, NEXTQUARTER, NEXTMONTH и NEXTDAY — везде, в рамках периода текущего контекста, возвращены суммы продаж за следующий период.

То есть, для 2017 года возвращена сумма прибыли за следующий 2018 год, для января возвращена сумма прибыли за следующий месяц (февраль) и так далее.

На этом, с разбором функций NEXTYEAR, NEXTQUARTER, NEXTMONTH и NEXTDAY, возвращающих следующий период в Power BI и Power Pivot, в этой статье все.

Успехов Вам, друзья!

 

Антон БудуевС уважением, Будуев Антон.
Проект «BI — это просто»

 

 

 

Присоединяйтесь к нашим социальным сетям

Именно в них оперативно и каждый день Вам будут доступны наши актуальные фишки, секреты, наработки, примеры, кейсы, полезные советы, видео и статьи 

по темам сквозной BI аналитики (Power BI, DAX, Power Pivot, Excel...)

Наша группа Вконтакте Мы в Инстаграме Наша группа в Фейсбук Наш YouTube канал
Наша группа VK
Подписаться на наш YouTube канал

 

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

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

 

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


Вам это может быть интересно. Другие статьи нашего обучающего портала:


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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

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