Applies ToMicrosoft 365 专属 Excel Excel 2024 Excel 2021 Excel 2019 Excel 2016

Power Pivot 中最强大的功能之一是在表之间创建关系,然后使用相关表查找或筛选相关数据。 可以使用Power Pivot 、数据分析表达式 (DAX) 提供的公式语言从表中检索相关值。 DAX 使用关系模型,因此可以轻松准确地检索另一个表或列中的相关或相应值。 如果熟悉 Excel 中的 VLOOKUP, Power Pivot 中的此功能类似,但要容易得多。

可以创建作为计算列的一部分或度量值的一部分进行查找的公式,以便在数据透视表或数据透视图中使用。 有关详细信息,请参阅下列主题:

PowerPivot 中的计算字段

Power Pivot 中的计算列

本部分介绍提供用于查找的 DAX 函数,以及如何使用函数的一些示例。

注意: 根据要使用的查找操作或查找公式的类型,可能需要先在表之间创建关系。

了解查找函数

在当前表只有某种标识符的情况下,从另一个表查找匹配或相关数据的功能特别有用,但需要 (的数据(如产品价格、名称或其他详细值) 存储在相关表中)。 如果另一个表中存在与当前行或当前值相关的多行,它也很有用。 例如,可以轻松检索与特定区域、商店或销售人员关联的所有销售。

与基于数组的 VLOOKUP 等 Excel 查找函数或 LOOKUP(它们获取多个匹配值中的第一个)相比,DAX 遵循由键联接的表之间的现有关系,以获取完全匹配的单个相关值。 DAX 还可以检索与当前记录相关的记录表。

注意: 如果熟悉关系数据库,则可以将 Power Pivot 中的查找视为类似于 Transact-SQL 中的嵌套子select 语句。

检索单个相关值

RELATED 函数从与当前表中的当前值相关的另一个表中返回单个值。 指定包含所需数据的列,函数遵循表之间的现有关系,从相关表中的指定列提取值。 在某些情况下,函数必须遵循关系链才能检索数据。

例如,假设你在 Excel 中有一个当前发货列表。 但是,该列表仅包含一个员工 ID 号、一个订单 ID 号和一个发货人 ID 号,这使得报表难以阅读。 若要获取所需的额外信息,可以将该列表转换为 Power Pivot 链接表,然后创建与 Employee 和 Reseller 表的关系,将 EmployeeID 与 EmployeeKey 字段匹配,将 ResellerID 与 ResellerKey 字段匹配。

若要在链接表中显示查找信息,请使用以下公式添加两个新的计算列:

= RELATED ('Employees'[EmployeeName]) = RELATED ('Resellers'[CompanyName])

查找前的今日出货量

订单 ID

EmployeeID

ResellerID

100314

230

445

100315

15

445

100316

76

108

Employees 表

EmployeeID

Employee

经销商

230

Kuppa Vamsi

模块化循环系统

15

皮拉尔·阿克曼

模块化循环系统

76

Kim Ralls

关联的自行车

今天的发货与查找

订单 ID

EmployeeID

ResellerID

Employee

经销商

100314

230

445

Kuppa Vamsi

模块化循环系统

100315

15

445

皮拉尔·阿克曼

模块化循环系统

100316

76

108

Kim Ralls

关联的自行车

函数使用链接表与 Employees 和 Resellers 表之间的关系来获取报表中每一行的正确名称。 还可以使用相关值进行计算。 有关详细信息和示例,请参阅 RELATED 函数

检索相关值的列表

RELATEDTABLE 函数遵循现有关系,并返回包含指定表中所有匹配行的表。 例如,假设你想要了解每个经销商今年下了多少个订单。 可以在“经销商”表中创建新的计算列,其中包含以下公式,用于查找ResellerSales_USD表中每个经销商的记录,并计算每个经销商下达的单个订单数。 

=COUNTROWS (RELATEDTABLE (ResellerSales_USD) )

在此公式中,RELATEDTABLE 函数首先获取当前表中每个经销商的 ResellerKey 值。 (无需在公式中的任何位置指定 ID 列,因为 Power Pivot 使用表之间的现有关系。) 然后,RELATEDTABLE 函数从ResellerSales_USD表中获取与每个经销商相关的所有行,并计算行数。 如果两个表之间没有 (直接或间接) 关系,则将从ResellerSales_USD表中获取所有行。

对于示例数据库中的经销商模块化循环系统,销售表中有四个订单,因此函数返回 4。 对于关联自行车,经销商没有销售额,因此函数返回空白。

经销商

此经销商的销售表中的记录

模块化循环系统

经销商 ID

SalesOrderNumber

445

SO53494

445

SO71872

445

SO65233

445

SO59000

经销商 ID

SalesOrderNumber

关联的自行车

注意: 由于 RELATEDTABLE 函数返回表而不是单个值,因此它必须用作对表执行操作的函数的参数。 有关详细信息,请参阅 RELATEDTABLE 函数

返回页首

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。