Power Pivot 公式中的查找

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

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

PowerPivot 中的计算字段

Power Pivot 中的计算列

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

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

了解查找函数

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

与基于数组或 LOOKUP (获取多个匹配值的第一个)的 Excel 查询函数(如 VLOOKUP)相反,DAX 将按照键联接的表之间的现有关系获取精确匹配的单个相关值。 DAX 还可以检索与当前记录相关的记录表。

注意: 如果你熟悉关系数据库,则可以将 Power Pivot 中的查找类似于 Transact-sql 中的嵌套的再入式语句。

检索单个相关值

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

例如,假设您在 Excel 中拥有今天的装运列表。 但是,该列表仅包含员工 ID 号、订单 ID 号和发货人 ID 号,使报表难以阅读。 若要获取所需的额外信息,可以将该列表转换为 Power Pivot 链接表,然后创建与员工和转销商表之间的关系,将 "雇员 Id" 表与 "EmployeeKey" 字段匹配,然后 ResellerID "ResellerKey" 字段。

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

= 相关("Employees" [EmployeeName])
= 相关("经销商" [公司名称])

今天的装运,然后查找

订单 ID

Id

ResellerID

100314

230

445

100315

15

445

100316

76

108

Employees 表

Id

员工

取得

230

Kuppa Vamsi

模块式周期系统

15

Pilar Ackeman

模块式周期系统

76

Kim Ralls

关联的自行车

今天的通过查找装运

订单 ID

Id

ResellerID

员工

取得

100314

230

445

Kuppa Vamsi

模块式周期系统

100315

15

445

Pilar Ackeman

模块式周期系统

100316

76

108

Kim Ralls

关联的自行车

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

检索相关值的列表

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

= COUNTROWS (RELATEDTABLE (ResellerSales_USD))

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

对于我们示例数据库中的转销商模块化周期系统,sales 表中有四个订单,因此该函数返回4。 对于关联的自行车,经销商没有销售,因此该函数返回空值。

取得

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

模块式周期系统

经销商 ID

SalesOrderNumber

445

SO53494

445

SO71872

445

SO65233

445

SO59000

经销商 ID

SalesOrderNumber

关联的自行车

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

返回页首

注意:  本页面是自动翻译的,可能包含语法错误或不准确之处。 我们的目的是使此内容能对你有所帮助。 能否告知我们此信息是否有所帮助? 下面是该参考内容的英文版

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×