Онлайн школа Аналитики и Данных

Конструкция USERELATIONSHIP

В статье мы рассмотрим использование такой конструкции, как Userelationship. При помощи данной функции можно переопределить активную связь на время выполнение запроса, не перестраивая связи в модели.

Пример:
Таблица “Данные по сотрудникам” содержит необходимые сведения о сотрудниках, а именно, ID сотрудника (например, менеджера по закупкам), некое значение (например, количество заказов), ID ответственного лица (пусть это будет куратор соответствующего менеджера):


Таблица “Справочник сотрудников” содержит ID сотрудника, и его фамилию:


Задача:
Подтянуть в таблицу “Данные по сотрудникам” фамилии как сотрудников, так и ответственных лиц.
Безусловно есть много неспортивных способов выполнения поступившего запроса (например, с использованием функции Switch, условного столбца в Power Query и пр.), но поскольку это не интересно и не универсально, мы это, не рассматриваем.

Получение значения “Фамилия сотрудника”:
Тут все просто, необходимо настроить нужную связь на уровне модели по полю “ID_Сотрудника”:


Дальше можно переходить непосредственно к созданию расчетного столбца в таблице “Данные по сотрудникам”, используя следующую формулу:
Фамилия_Cотрудника =
RELATED ( 'Справочник сотрудников'[Фамилия] )
undefined
Затем можно проверить получившийся результат:


Получение значения “Фамилия ответственного”:
Необходимо настроить вторую связь на уровне модели по полю “ID_Ответственного”, при этом то, что она будет неактивной – это нормально:


Дальше можно переходить непосредственно к созданию расчетного столбца в таблице “Данные по сотрудникам”, используя следующую формулу:
Фамилия_Ответственного =
CALCULATE (
MINX ( 'Данные по сотрудникам', RELATED ( 'Справочник сотрудников'[Фамилия] ) ),
ALL ( 'Справочник сотрудников' ),
USERELATIONSHIP ( 'Данные по сотрудникам'[ID_Ответственного], 'Справочник сотрудников'[ID_Сотрудника] )
)

Затем можно проверить получившийся результат:


Наши курсы по Power BI:
Курс Аналитик BI
Курс DAX Mastering
Курс Финансовый анализ в Power BI

Наши каналы:
Facebook
Instagram
Telegram
VK
Полезные статьи