Россия Нет

Ограничение таблиц из дат в Power BI и Power Pivot: DAX функции DATESBETWEEN и DATESINPERIOD

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


Приветствую Вас, дорогие друзья, с Вами Будуев Антон. В данной статье мы обсудим DAX функции DATESBETWEEN и DATESINPERIOD, создающие в Power BI и PowerPivot ограниченные таблицы из дат.

Эти функции не создают непрерывный календарь, они, всего лишь, берут именно тот перечень дат, который содержится в исходном столбце и ограничивают его. Если в исходной таблице имеются пропуски, то DATESBETWEEN или DATESINPERIOD вернут ограниченный столбец из дат, также, с этими же пропусками.

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

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

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

 

DAX функция DATESBETWEEN в Power BI и Power Pivot

DATESBETWEEN () — ограничитель календаря по произвольным датам. Создает ограниченную таблицу из дат, начиная со стартовой и заканчивая конечной датами, расположенными в исходном столбце.

Синтаксис:

DATESBETWEEN ([Дата]; Стартовая Дата; Конечная Дата)

Где:

  • [Дата] — столбец дат в исходной таблице
  • Стартовая и Конечная Даты — дата в формате datetime

! — Стартовые и конечные даты, указанные в параметрах функции, входят в состав выводимых дат.

Пример формулы на основе DAX функции DATESBETWEEN.

В Power BI имеется исходная таблица «Продажи», содержащая даты и сумму продаж за 2 года с 1.01.2017 по 31.12.2018. Но, продажи имеются не за каждый день. Обратите внимание, что 30 декабря 2018 года отсутствует, потому что продаж не было:

 

В определенных расчетах нам могут понадобиться даты этих продаж, но не все, а ограниченные, например, только за 2018 год. Ограничить даты можно многими способами, начиная от пользовательских фильтров в разделе «Отчеты» в Power BI Desktop, заканчивая разнообразными формулами и функциями внутри самого языка DAX.

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

Создадим во вкладке «Моделирование» в Power BI Desktop вычисляемую таблицу по следующей формуле на основе DATESBETWEEN:

ДатаПродажи = 
DATESBETWEEN (
    'Продажи'[ДатаПродажи]; 
    "1.01.2018"; 
    "31.12.2018"
)

Этой формулой мы создали таблицу с датами продаж, ограниченными только 2018 годом:

 

Обратите внимание, что DATESBETWEEN возвратила именно тот набор дат, который был в исходном столбце, то есть, 30 декабря 2018 года в этой таблице тоже нет.

 

DAX функция DATESINPERIOD в Power BI и Power Pivot

DATESINPERIOD () — ограничитель календаря по типовым интервалам. Создает ограниченную таблицу из дат, начиная со стартовой даты, расположенной в исходном столбце и продолжая в течение указанного типового интервала (количеством дней, месяцев, кварталов, лет).

Синтаксис:

DATESINPERIOD ([Дата]; Стартовая Дата; Количество Интервалов; Интервал)

Где:

  • [Дата] — столбец дат в исходной таблице
  • Стартовая Дата — дата в формате datetime (указанная дата входит в состав выводимых дат)
  • Количество Интервалов — целое число, характеризующее количество интервалов
  • Интервал — наименование интервала: year (год), quarter (квартал), month (месяц), day (день)

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

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

ДатаПродажи = 
DATESINPERIOD (
    'Продажи'[ДатаПродажи]; 
    "1.01.2018"; 
    12;
    MONTH
)

В первом параметре мы указали исходный столбец, во втором — стартовую дату, с которой нужно начать ограничение, в третьем — количество периодов, в нашем случае, 12. Ну и, в четвертом — наименование самого периода — я выбрал «MONTH», то есть, месяц.

Результатом выполнения этой формулы на основе DATESINPERIOD, получился столбец из дат, начиная с 1 января 2018 года и далее, продолжая на период в 12 месяцев, до 31 декабря 2018 года:

 

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

Сами по себе DATESBETWEEN и DATESINPERIOD обычно просто так не используют. А вставляют их в другие формулы в сочетании с другими функциями.

Также, не нужно путать столбцы из дат, которые создают DATESBETWEEN либо DATESINPERIOD с календарем. Для создания календаря есть специализированные функции, ссылку на них я уже давал выше. А рассматриваемые функции в этой статье — являются именно ограничителем либо исходного столбца дат, либо большого непрерывного календаря.

На этом, с функциями ограничивающими таблицу дат в Power BI и Power Pivot, в этой статье все.

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

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

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

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

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

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

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

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