Блог Effema
Power BI

Использование неактивных связей

В этой статье мы научимся активировать вторую или третью связь между таблицами с помощью функций DAX.
Простыми словами, связи в Power BI распространяют фильтры, применённые к столбцам в таблицах, на другие таблицы модели. 
При работе с большим количеством таблиц и столбцов в них возникает проблема, что они имеют отношения с n-количеством других таблиц, однако в Power BI одновременно может быть активна только 1 связь между двумя таблицами.  
В представлении модели Power BI Desktop можно выяснить состояние связи: активная связь обозначается сплошной линией, а неактивная — пунктирной.
Ниже приведен частичный пример модели с двумя видами связей.


Использование неактивной связи часто требуется при необходимости проведения анализа данных относительно разных дат, например, даты оплаты и отгрузки товаров.
Помогает решить данную проблему применение формулы USERELATIONSHIP. 
У неё очень простой синтаксис:
USERELATIONSHIP ( <columnName1>, <columnName2> ).
В первом и втором параметрах данной функции указываются колонки, по которым надо активировать связь.
Произведём расчет суммы оплаченных курсов, включив связь в мере:

Summ payment =
CALCULATE(
               SUMX(
FILTER(
'Order',
'Order'[Статус] = "Оплата завершена успешно"
),
'Order'[summ] // расчет суммы оплаченных курсов
),
               USERELATIONSHIP( 'Order'[Payment_date], 'Calendar'[Date])           
 )  //активация связи          
    )

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

Важным замечанием является то, что в модели вы должны иметь существующую неактивную связь для работы функции, иначе BI выдаст следующую ошибку: 


В целом, рекомендуется определять активные связи во всех возможных ситуациях. Они позволяют расширить область применения и потенциальные возможности использования отчётов. 
И последний совет пользователям: чтобы минимизировать ошибки в связях, рекомендуется отключать автоматическое определение их в Power BI. 

Отключить/включить автоматическое определение:
Файл > Параметры и настройки >   Параметры
Текущий файл: Загрузка данных > Связи: Автоматически искать новые связи при загрузке данных

Comments powered by Agentima