Поделиться через


Функция RELATED

Возвращает связанное значение из другой таблицы.

Синтаксис

RELATED(<column>)

Параметры

Элемент

Определение

column

Столбец, содержащий значения, которые нужно получить.

Возвращаемое значение

Единичное значение. связанное с текущей строкой.

Замечания

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

Если связь отсутствует, ее необходимо создать. Дополнительные сведения см. в разделе Создание связи между двумя таблицами.

Когда функция RELATED выполняет уточняющий запрос, проверяются все значения в указанной таблице, без учета примененных фильтров.

ПримечаниеПримечание

Функции RELATED требуется контекст строки, и поэтому ее можно использовать только в выражении вычисляемого столбца, где контекст текущей строки определен однозначно, либо в качестве вложенной функции в выражении, где используется функция просмотра таблицы. Функция просмотра таблицы (например, SUMX) получает значение текущей строки, а затем просматривает другую таблицу, проверяя наличие копий этого значения.

Пример

В следующем примере создается мера Non USA Internet Sales, чтобы создать отчет о продажах, в который не входят продажи в США. Чтобы создать меру, таблица InternetSales_USD должна быть отфильтрована, чтобы исключить продажи в США, относящиеся к таблице SalesTerritory. США как страна появляется в таблице SalesTerritory 5 раз, по одному разу для каждого из следующих регионов: Северо-Запад, Северо-Восток, Центр, Юго-Запад и Юго-Восток.

Первым подходом к фильтрации продаж через Интернет для создания меры может быть добавление критерия фильтра, аналогичного следующему:

FILTER('InternetSales_USD', 'InternetSales_USD'[SalesTerritoryKey]<>1 && 'InternetSales_USD'[SalesTerritoryKey]<>2 && 'InternetSales_USD'[SalesTerritoryKey]<>3 && 'InternetSales_USD'[SalesTerritoryKey]<>4 && 'InternetSales_USD'[SalesTerritoryKey]<>5)

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

Более удачным подходом было бы использование существующих связей между InternetSales_USD и SalesTerritory, а также явное указание на то, что страна должна быть отлична от США. Для этого создайте критерий фильтра следующим образом:

FILTER( 'InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")

Это выражение использует функцию RELATED для уточняющего запроса значения страны в таблице SalesTerritory, начиная со значения ключевого столбца SalesTerritoryKey в таблице InternetSales_USD. Результат уточняющего запроса используется функцией фильтрации для определения, отфильтрована ли строка InternetSales_USD.

ПримечаниеПримечание

Если пример не работает, может понадобиться создать связь между таблицами. Дополнительные сведения см. в разделе Связи между таблицами.

= SUMX(FILTER( 'InternetSales_USD'
            ,  RELATED('SalesTerritory'[SalesTerritoryCountry])
               <>"United States"
             )
     ,'InternetSales_USD'[SalesAmount_USD])

В следующей таблице показаны только итоги по каждому региону, чтобы подтвердить правильную работу критерия фильтра в мере Non USA Internet Sales.

Row Labels

Internet Sales

Non USA Internet Sales

Australia

$4,999,021.84

$4,999,021.84

Canada

$1,343,109.10

$1,343,109.10

France

$2,490,944.57

$2,490,944.57

Germany

$2,775,195.60

$2,775,195.60

United Kingdom

$5,057,076.55

$5,057,076.55

United States

$9,389,479.79

 

Общий итог

$26,054,827.45

$16,665,347.67

В следующей таблице показан итоговый отчет, который можно получить, если использовать эту меру в сводной таблице.

Non USA Internet Sales

Column Labels

 

 

 

Метки строк

Accessories

Bikes

Clothing

Общий итог

2005

 

$1,526,481.95

 

$1,526,481.95

2006

 

$3,554,744.04

 

$3,554,744.04

2007

$156,480.18

$5,640,106.05

$70,142.77

$5,866,729.00

2008

$228,159.45

$5,386,558.19

$102,675.04

$5,717,392.68

Общий итог

$384,639.63

$16,107,890.23

$172,817.81

$16,665,347.67

См. также

Справочник

Функция RELATEDTABLE

Другие ресурсы

Функции фильтров (DAX)

Связи между таблицами