Изучаем DAX Time Intelligence с помощью ViTalk GPT
Привет, Хабр! Сегодня я хочу поговорить о возможностях и ограничениях функций Time Intelligence в Visiology. Это очень интересный раздел языка DAX, который позволяет быстро делать показательные расчеты, например, сравнивая показатели текущего периода с предыдущими. Однако в его реализации для Visiology и Power BI есть некоторые различия (впрочем, не влияющие на результат). В этой статье мы поговорим об этой разнице, а также я наглядно покажу, как чат-бот ViTalk GPT помогает разобраться с особенностями работы различных функций.
DAX является достаточно мощным инструментом для построения сложных дашбордов. И разумеется, тут не обойтись без расчетов в рамках периодов времени, или Time Intelligence.
Time Intelligence еще с прошлого года поддерживается в Visiology, например мы можем использовать функцию TOTALYTD
TOTALYTD (<выражение>, <даты>)
В результате мы получим, например, такой дашборд:

Также в Visiology непосредственно поддерживаются Time Intelligence-функции DATEADD и SAMEPERIODLASTYEAR, а также функции работы со временем, например TODAY, DATE, DATEDIFF, YEAR, MONTH, DAY. Они позволяют выполнять расчеты с периодами. Но чтобы правильно пользоваться этими функциями, необходимо подробно читать документацию…или воспользоваться ИИ-ассистентом ViTalk GPT, которого мы только что обновили.
1. Информация о функциях Time Intelligence в ViTalk
Я лично работал над ViTalk GPT и могу точно сообщить, что после недавнего обновления бота, в нем можно узнать всю достоверную информацию об одной из самых любопытных функций этого раздела — SAMEPERIODLASTYEAR — и ограничениях её использования в других функциях:

Бот четко рассказывает, как использовать SAMEPERIODLASTYEAR с CALCULATE в Visiology. В ответе приводится один из корректных примеров
Аналогично в ViTalk GPT можно получить информацию и по DATEADD

2. Генерация мер Time Intelligence в ViTalk
Также можно получить пример использования SAMEPERIODLASTYEAR для продаж за прошлый год, причем, обратите внимание, на этот раз ViTalk GPT сгенерировал решение без TOTALYTD.

Кроме того, при необходимости можно генерировать и несколько мер в одном запросе. Главное — задать ViTalk GPT правильный вопрос.

Конечно, для TOTALYTD есть лаконичный синтаксис с TOTALYTD ([date], SAMEPERIODLASTYEAR)
и он тоже поддерживается. Эта информация уже внесена в базу знаний ViTalk GPT:

Обращаясь к ViTalk GPT, вы можете получить корректный синтаксис для использования TOTALYTD и SAMEPERIODLASTYEAR.
3. Ответы на вопросы про ограничения Time Intelligence функций в Visiology
Если вы уже пробовали работать с Time Intelligence в Visiology, то могли убедиться, что для некоторых функций есть ограничения. На вопросы о таких особенностях также можно получить ответ через ViTalk GPT. В частности, бот показывает корректный синтаксис для функции SAMEPERIODLASTYEAR в рамках CALCULATE

Обратите внимание, ViTalk не только сообщил, какой вариант синтаксиса для CALCULATE и SAMEPERIODLASTYEAR не поддерживается, но и также порекомендовал корректную замену. Это очень полезная фишка нашего бота, которая экономит пользователям кучу времени.
Заключение
Если вы собираетесь использовать функции Time Intelligence на своих дашбордах, но еще не до конца изучили особенности их работы в Visiology, я бы рекомендовал обращаться к нашему ИИ-боту ViTalk GPT. Он гарантировано обучен всем нюансам их работы и даже может полностью решить за вас базовые задачи формулирования запросов с использованием DATEADD и SAMEPERIODLASTYEAR, TODAY, DATE, DATEDIFF, YEAR, MONTH, DAY и другими функциями.
Успешных дашбордов!