Автоматический анализ времени в Power BI

Tags: Power BI, Time Intelligence

Power BI предлагает функцию Auto Date/Time, которая позволяет легко просматривать данные по году, кварталу, месяцу и дате. В следующей модели таблица Sales содержит столбец Order Dat, который содержит только дату. Пользователь может просматривать его, используя год и квартал, просто поместив дату в матрицу:

 

Функция Auto Date/Time может быть включена или выключена с помощью диалогового окна «Файл | Параметры и настройки | Параметры» в разделе «Загрузка данных». Он включен по умолчанию.

 

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

Пользователь может ссылаться на эти таблицы, используя специальный синтаксис, который Power BI использует при создании быстрых вычислений. Например, быстрое вычисление года (YTD) на основе столбца Sales [Order Date] выглядит следующим образом:

Sales Amount YTD :=

IF (

    ISFILTERED ( 'Sales'[Order Date] ),

    ERROR ( "Time intelligence quick measures can only be grouped …" ),

    TOTALYTD ( 'Sales'[Sales Amount],  'Sales'[Order Date].[Date] )

)


Второй параметр TOTALYTD - это не простая ссылка на столбец. Он содержит имя таблицы, имя столбца, а затем, разделенные точкой, другое имя столбца. Полное значение этого синтаксиса следующее:

Ссылка на столбец Date в таблице автоматических дат, созданной для столбца Order Date в таблице Sales.

Хотя это полезная функция для очень простых моделей, она имеет некоторые серьезные ограничения:

  • Невозможно настроить автоматические таблицы дат. По умолчанию они содержат год, квартал, месяц и дату. Если пользователю нужны дополнительные атрибуты, невозможно добавить их в модель.
  • Для каждого столбца Date в модели существует отдельная автоматическая таблица дат, что затрудняет создание отчетов, которые разбивают несколько таблиц или вычисляют значения на основе разных дат в одной таблице.

Хотя первый пункт не требует дополнительных пояснений, второй пункт заслуживает более подробного пояснения на паре примеров. Рассмотрим модель, содержащую две таблицы Sales и Purchases:

 

Автоматическая таблица дат, созданная для Sales[Order Date], фильтрует только продажи и не будет фильтровать покупки. С другой стороны, автоматическая таблица дат, созданная для Purchases[Order Date], фильтрует только покупки. Невозможно отфильтровать обе таблицы, используя один столбец. Таким образом, отчет, показывающий продажи и покупки в одном и том же виде, выглядит следующим образом:

 

Хотя это очевидно для нескольких таблиц, такая же проблема возникает, когда в одной таблице несколько типов дат. Например, Sales содержит как дату заказа, так и дату доставки. Пользователь может захотеть создать отчет, показывающий сумму заказа и сумму доставки в одном визуале, например:

 

Этот вариант недоступен, поскольку он полагается исключительно на таблицу автоматических дат, поскольку будет две таблицы дат: одна для даты продажи и одна для даты доставки.

Таким образом, автоматическая обработка даты / времени в Power BI работает только в сценарии, где есть одна таблица с одним столбцом даты. Любой другой сценарий требует настраиваемой таблицы дат и создания вычислений для анализа времени в DAX, поскольку невозможно использовать быстрые вычисления.

No Comments

Add a Comment