RELATED 函数
从另一个表返回相关值。
语法
RELATED(<column>)
参数
项 |
定义 |
---|---|
column |
包含要检索的值的列。 |
返回值
与当前行相关的单个值。
注释
RELATED 函数要求当前表与包含相关信息的表之间存在关系。 您需要指定包含所需数据的列,该函数将通过现有的多对一关系从相关表中的指定列中提取值。
如果不存在关系,则必须创建关系。 有关详细信息,请参阅创建两个表之间的关系。
RELATED 函数执行查找时,它将检查指定表中的所有值,而不考虑可能已应用的任何筛选器。
![]() |
---|
RELATED 函数需要行上下文;因此,该函数只能用在计算列表达式中,这种表达式中的当前行上下文很明确。或者,该函数也可在使用表扫描函数的表达式中用作嵌套函数。 表扫描函数(例如 SUMX)将获取当前行的值,然后扫描另一个表中该值的实例。 |
示例
在下面的示例中,创建“非美国 Internet 销售”度量值是为了生成不含美国销售的销售报表。 为了创建该度量值,必须对 InternetSales_USD 表进行筛选,以排除属于 SalesTerritory 表中的美国的所有销售。 美国作为一个国家在 SalesTerritory 表中出现 5 次,对于以下每个地区各出现一次:西北、东北、中部、西南和东南。
为创建该度量值而筛选 Internet 销售的第一种方法可以是添加如下的筛选器表达式:
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 表中查找国家/地区值,从 InternetSales_USD 表中的 SalesTerritoryKey 键列的值开始查找。 筛选器函数根据查找结果决定是否筛选出 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 |
列标签 |
|
|
|
---|---|---|---|---|
行标签 |
Accessories |
Bikes |
Clothing |
Grand Total |
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 |
Grand Total |
$384,639.63 |
$16,107,890.23 |
$172,817.81 |
$16,665,347.67 |