Записки охотника

Конструкции Related и Lookupvalue

Собакенские будни
Рвав-рвав, сегодня я — собака-двередержака!

Перед вами — 2-я заметка из нашего цикла «Собакенские будни», и ниже мы рассмотрим использование таких конструкций, как Related и Lookupvalue. При помощи данных функций можно присоединять данные, содержащиеся в разных таблицах, друг к другу. Прошаренная собака для целей демонстрации будет использовать тот же пример, что и в статье Собакенские будни — конструкция Switch.

Пример:

Имеется 2 набора данных, содержащих различную информацию, но при этом в каждом из наборов присутствует уникальный ключ (см. столбец «Питомец»):



Кстати, если ключ отсутствует, не опускать хвост ни в коем разе, его всегда можно сделать самостоятельно, лишь бы данные обоих наборов были хоть как-то сопоставимы.

Задача:

Собрать данные из обоих наборов в одном визуальном элементе, например, в элементе «Таблица».

Использование функционала:

  • Если мы можем связать данные посредством имеющегося ключа, и у нас не стоит задачи объединения данных в одну сущность, то все что необходимо сделать — это настроить нужную связь на уровне модели:


  • Дальше уже можно переходить непосредственно к построению визуального элемента, в общем, проще не бывает:


Конструкции Related:

  • Данная функция работает только при наличии связей между данными, все, что необходимо сделать — это определиться с базовой таблицей, а затем выбрать нужный столбец из другой таблицы:

Эпитет — со связью =
RELATED ('Таблица 2'[Эпитет])

  • Результат использования формулы, указанной выше:


В результате указанного действия мы получили составной набор данных, где указано, например, что «Джек-рассел терьер собака Смайл молодец», а Йоркширский терьер песик Тедди умница :-)".

  • При формировании визуального элемента результат аналогичен 1-му варианту:


Конструкции Lookupvalue:

  • Данная функция работает более хитрым образом, при этом, непосредственное наличие связей между данными для ее работы необязательно, поэтому, для чистоты эксперимента, настроенная ранее связь между «Dataset 1» и «Dataset 2» удалена:


  • Сначала необходимо указать столбец желаемого результата из присоединяемой таблицы, а затем — поле ключа для поиска необходимых данных в обоих наборах. Формула, позволяющая получить составной набор данных, выглядит следующим образом:

Эпитет — без связи =
LOOKUPVALUE ('Таблица 2'[Эпитет], 'Таблица 2'[Питомец], 'Таблица 1'[Питомец])

  • Результат использования формулы, указанной выше:


  • При формировании визуального элемента полученный результат аналогичен вариантам 1 и 2, но, из-за отсутствия связи между данными, на иллюстрации эти варианты стали неработоспособны, как и в столбце «Эпитет — со связью»:


Рвав-рвав, товарищи, даже если в связи с особенностями вашей модели связи построить нельзя — это не повод для грусти!
Держу нос по ветру.
Ваш Смайл