Содержание статьи: (кликните, чтобы перейти к соответствующей части статьи):
Приветствую Вас, дорогие друзья, с Вами Будуев Антон. В этой статье мы обсудим функции в DAX, возвращающие дату в том или ином виде. И это функции DATE, DATEVALUE, YEAR, MONTH, DAY и TODAY в Power BI и PowerPivot.
Разберем каждую из функций отдельно.
Для Вашего удобства, рекомендую скачать «Справочник DAX функций для Power BI и Power Pivot» в PDF формате.
Если же в Ваших формулах имеются какие-то ошибки, проблемы, а результаты работы формул постоянно не те, что Вы ожидаете и Вам необходима помощь, то записывайтесь в бесплатный экспресс-курс «Быстрый старт в языке функций и формул DAX для Power BI и Power Pivot».
DAX функция TODAY в Power BI и PowerPivot
TODAY () — сегодня. Возвращает текущую дату.
Данная функция очень простая и не содержит в себе ни одного параметра.
Синтаксис:
TODAY ()
Пример формулы:
Сегодня = TODAY ()
Результатом выполнения этой формулы будет текущее сегодняшнее число:
DAX функция DATE в Power BI и PowerPivot
DATE () — возвращает в формате datetime прописанную в параметрах дату.
Синтаксис:
DATE (год; месяц; день)
! — Если месяц не соответствует числам 1-12, то лишние (недостающие) месяца добавляются (убавляются) к году.
! — Если дни не соответствуют числам 1-31 в месяце, то лишние (недостающие) дни добавляются (убавляются) к месяцу и к году.
Примеры формул с использованием функции DATE.
Пример 1: DATE (2018; 13; 23) Результат 1: 23.01.2019 Пример 2: DATE (2018; -1; 23) Результат 2: 23.11.2017 Пример 3: DATE (2018; 01; 32) Результат 4: 01.02.2018 Пример 4: DATE (2018; 02; -1) Результат 4: 30.01.2018
Пример выполнения формулы в Power BI на основе DAX функции DATE будет выглядеть так:
DAX функция DATEVALUE в Power BI и PowerPivot
DATEVALUE () — используя локаль даты ПК, возвращает в формате datetime прописанную в параметрах текстовую дату.
Синтаксис:
DATEVALUE ("Дата")
«Дата» — может быть записана в различных вариантах, в том числе, и сокращенных.
Рассмотрим функцию DATEVALUE на примерах формул:
Пример 1: DATEVALUE ("2018-01-01") Результат 1: 01.01.2018 Пример 2: DATEVALUE ("2018.01.01") Результат 2: 01.01.2018 Пример 3: DATEVALUE ("2018/01/01") Результат 3: 01.01.2018 Пример 4: DATEVALUE ("2018,01,01") Результат 4: 01.01.2018 Пример 5: DATEVALUE ("2018 01 01") Результат 5: 01.01.2018 Пример 6: DATEVALUE ("2018 12") Результат 6: 01.12.2018 Пример 7: DATEVALUE ("декабрь 2018") Результат 7: 01.12.2018 Пример 8: DATEVALUE ("23 дек") Результат 8: 23.12.2018
В Power BI формула на основе DATEVALUE работать будет так:
DAX функции YEAR, MONTH и DAY в Power BI и PowerPivot
YEAR (), MONTH () и DAY () — возвращают год, месяц и день в формате чисел из значения даты.
Синтаксис:
YEAR ([Дата]) MONTH ([Дата]) DAY ([Дата])
Где [Дата] — столбец, содержащий даты, либо дата в текстовом или datetime форматах.
Примеры формул на основе функций YEAR, MONTH и DAY.
Пример 1: YEAR (DATE (2018; 10; 18)) Результат 1: 2018 Пример 2: YEAR ("декабрь 2017") Результат 2: 2017 Пример 3: MONTH (DATE (2018; 10; 18)) Результат 3: 10 Пример 4: MONTH ("18 декабря") Результат 4: 12 Пример 5: DAY (DATE (2018; 10; 13)) Результат 5: 13 Пример 6: DAY ("17 декабря") Результат 6: 17
В большинстве случаев, эти функции в Power BI или PowerPivot будут использоваться со внутренним параметром [Дата], то есть, значение даты будет указано в столбце. Давайте рассмотрим соответствующий пример.
В Power BI Desktop имеется исходная таблица с датами:
Создадим в этой таблице 3 вычисляемых столбца по следующим формулам:
Год = YEAR ([Дата]) Месяц = MONTH ([Дата]) День = DAY ([Дата])
В результате, в Power BI получим следующую расширенную таблицу:
На этом, с разбором функций дат в Power BI и PowerPivot, в этой статье все. Переходите к следующей статье, где мы разберем похожие функции времени.
Пожалуйста, оцените статью:
Успехов Вам, друзья!
С уважением, Будуев Антон.
Проект «BI — это просто»
Если у Вас появились какие-то вопросы по материалу данной статьи, задавайте их в комментариях ниже. Я Вам обязательно отвечу. Да и вообще, просто оставляйте там Вашу обратную связь, я буду очень рад.
Также, делитесь данной статьей со своими знакомыми в социальных сетях, возможно, этот материал кому-то будет очень полезен.
Понравился материал статьи?
Добавьте эту статью в закладки Вашего браузера, чтобы вернуться к ней еще раз. Для этого, прямо сейчас нажмите на клавиатуре комбинацию клавиш Ctrl+D
Добрый день.
При использовании функции Month выдает следующее сообщение:
«Не удается преобразовать значение «Январь» типа Text в тип Date»
Что не так?
Функция Format работает, но на графиках месяца не упорядочиваются.
Что делать?)
Здравствуйте, Андрей.
В функцию MONTH нужно вставлять дату — либо реальную дату, например такую: 12.10.2019, либо дату в текстовом формате, например, такую: «12 января»
НО! В нее НЕЛЬЗЯ вставлять просто месяц, записанный в виде текста, как у Вас: «январь» — так функция MONTH уже не работает.
По второму вопросу с функцией FORMAT — на сколько я понял Ваш вопрос, то у Вас на графиках все выводится в алфавитном порядке, а Вам нужно упорядочить по нужному Вам порядку (календарному). Для этого Вам нужно в этой же таблице создать еще один индексный столбец с числовыми данными, выражающими порядок, и далее настроить сортировку нужного Вам столбца по индексному столбцу:
Сам индексный столбец можно создавать разными вариантами, в зависимости от того, какие данные у Вас выводит FORMAT. Если дни недели, то индексный столбец можно создать на основе функции WEEKDAY([Дата];2), если месяца, то индексный столбец можно создать так: MONTH([Дата]).
Также, можно воспользоваться универсальной «ручной» формулой:
А если в исходных данных 10 разных столбцов с датами и нужны отчеты по дням недели, дням месяца, неделе, месяцу, кварталу, году, то к каждой дате нужно создавать доп. таблицу с этими дополнительными преобразованиями?
Смотря какие у Вас цели. Можно к каждому столбцу с датами в исходных таблицах делать дополнительные преобразования, а можно (в большинстве случаев это будет рациональнее) создать один справочник Календарь, в нем сделать нужные преобразования дат. И этот справочник уже соединить связями со всеми другими таблицами, содержащие даты. Главное, чтобы это были одни и те же даты (например, только даты продаж).
Объединять разные типы даты одним справочником (например, даты поставки и даты продаж) уже будет не совсем правильно.