PowerPivot 公式中的查找

应用对象
Microsoft 365 专属 Excel Excel 2024 Excel 2021 Excel 2019 Excel 2016

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

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

PowerPivot 中的计算字段

Power Pivot 中的计算列

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

注意

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

了解查找函数

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

不同于基于数组的 Excel 查找函数(如 VLOOKUP)或 LOOKUP(获取多个匹配值中的第一个值),DAX 跟踪按键联接的表之间的现有关系来获取完全匹配的单个相关值。 DAX 还可以检索与当前记录相关的记录表。

注意

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

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

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

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

= RELATED ('Employees'[EmployeeName])
= 相关 (“经销商”[公司名称])

查找前的当天发货情况

订单 ID EmployeeID ResellerID
100314 230 445
100315 15 445
100316 76 108

Employees 表

EmployeeID Employee 经销商
230 Kuppa Vamsi 模块化循环系统
15 Pilar Ackeman 模块化循环系统
76 Kim Ralls 关联的自行车

带查找的今日货件

订单 ID EmployeeID ResellerID Employee 经销商
100314 230 445 Kuppa Vamsi 模块化循环系统
100315 15 445 Pilar Ackeman 模块化循环系统
100316 76 108 Kim Ralls 关联的自行车

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

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

=COUNTROWS (RELATEDTABLE (ResellerSales_USD) )

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

对于我们示例数据库中的经销商 Modular Cycle Systems,销售表中有四个订单,因此该函数返回 4。 对于关联的自行车,经销商没有销售额,因此该函数返回空。

经销商 此经销商的销售表中的记录
模块化循环系统 经销商 ID
445
445
445
445
经销商 ID
关联的自行车

注意

因为 RELATEDTABLE 函数返回一个表而不是单个值,所以它必须用作对表执行操作的函数的参数。 有关详细信息,请参阅 RELATEDTABLE 函数

返回页首