Россия Нет

Как в Power BI (Power Pivot) получить первую (последнюю) известную дату? DAX функции FIRSTDATE и LASTDATE

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


Приветствую Вас, дорогие друзья, с Вами Будуев Антон. Этой статьей мы заканчиваем рассматривать функции в DAX из категории time intelligence (логики операций с датами и временем). А конкретно, мы разберем работу двух достаточно простых функций FIRSTDATE и LASTDATE, возвращающих первую (последнюю) известную дату в Power BI и Power Pivot.

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

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

 

DAX функции FIRSTDATE и LASTDATE в Power BI и Power Pivot

FIRSTDATE () — возвращает первую известную дату для указанного столбца дат в текущем контексте.
LASTDATE () — возвращает последнюю известную дату для указанного столбца дат в текущем контексте.

Иногда я встречаю, что пользователи языка DAX в Power BI или Power Pivot пишут данные функции в два раздельных слова: FIRST DATE или LAST DATE, что, естественно, неправильно.

Синтаксис:

FIRSTDATE ([Дата])
LASTDATE ([Дата])

 

Пример формул на основе DAX функций FIRSTDATE и LASTDATE

Разберем формулы с участием DAX функций FIRSTDATE и LASTDATE на основе примера продажи некого товара.

В Power BI имеется исходная таблица «Продажи товара», где содержится информация по дате сделки продажи:

 

Для тех или иных задач, для построения каких-то исследовательских отчетов в Power BI, на основании имеющихся данных по продажам, нам требуется получить даты первой и последней сделки по продаже товара. Как Вы понимаете, для этих целей нам подойдут рассматриваемые в этой статье time intelligence функции FIRSTDATE и LASTDATE, так как они, как раз таки, и возвратят нам эти даты первой и последней продажи.

Итак, составим соответствующие формулы мер в Power BI Desktop:

Первая Продажа = FIRSTDATE ('ПродажиТовара'[ДатаСделки])
Последняя Продажа = LASTDATE ('ПродажиТовара'[ДатаСделки])

И в отчетах Power BI мы можем пронаблюдать работу формул этих мер:

 

Теперь, больше не для того, чтобы понять работу функций FIRSTDATE и LASTDATE (они и так простые и с ними все понятно), а для тренировки составления формул на языке DAX, рассмотрим пример с формулой, несколько сложнее предыдущих.

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

То есть, в нашу исходную прошлую формулу нужно вставить каким-то образом фильтр, который отфильтрует все даты продаж до 25 января. Код формулы будет таким:

Последняя Продажа = 
LASTDATE (
    FILTER (
        ALL ('ПродажиТовара'[ДатаСделки]);
        'ПродажиТовара'[ДатаСделки] < DATE (2018; 01; 25)
    )
)

Где, в качестве параметра столбца с датами в функции LASTDATE мы вставили функцию FILTER, которая и отфильтровывает даты сделок до 25 января следующим условием:

'ПродажиТовара'[ДатаСделки] < DATE (2018; 01; 25)

Для сравнения в условии даты сделок с 25 января мы воспользовались еще одной DAX функцией DATE, которая позволила в этом условии записать саму дату.

Также, пришлось использовать еще одну DAX функцию — ALL. Потому как, функция FILTER, если в ее первый параметр вставить просто таблицу «Продажи Товара», то она возвратит отфильтрованную таблицу, что не подойдет для функции LASTDATE, так как в параметре LASTDATE — должен быть столбец, а не таблица. И функция ALL, внутрь которой мы вставили ссылку на столбец [Дата Сделки], в результате возвратила столбец в виде таблицы. Что подошло как и для FILTER (так как в ней нужна ссылка именно на таблицу), так и для LASTDATE (так как для нее нужна ссылка на столбец).

Итог работы этой формулы мы можем наблюдать в отчетах Power BI:

 

Как мы видим из этой визуализации в Power BI, дата последней продажи у нас вывелась не 28 января, как в первом примере, а 23 января.

На этом в этой статье, с разбором DAX функций FIRSTDATE и LASTDATE, возвращающих первую (последнюю) известные даты в Power BI или PowerPivot, все.

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

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

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

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

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

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

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

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