Функция 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 |