Power Pivot 公式中的查找

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

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

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

PowerPivot 中的计算字段

Power Pivot 中的计算列

本节描述为查找提供的 DAX 函数,以及阐述如何使用这些函数的某些示例。

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

了解查找函数

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

与 Excel 查找函数(如 VLOOKUP,它们基于数组;或 LOOKUP,它们从多个匹配值中获取第一个匹配值)不同,DAX 遵循通过键联接的表中的现有关系以便获取完全匹配的单个相关值。DAX 也可以检索与当前记录相关的记录组成的表。

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

检索单个相关值

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

Modular Cycle Systems

15

Pilar Ackeman

Modular Cycle Systems

76

Kim Ralls

Associated Bikes

带查找当天发货

订单 ID

EmployeeID

ResellerID

Employee

Reseller

100314

230

445

Kuppa Vamsi

Modular Cycle Systems

100315

15

445

Pilar Ackeman

Modular Cycle Systems

100316

76

108

Kim Ralls

Associated Bikes

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

检索相关值的列表

RELATEDTABLE 函数通过现有关系返回包含指定表中所有匹配行的表。例如,假定您想要确定每个分销商在这一年度中下了多少订单。您可以在 Resellers 表中创建一个包含以下公式的新计算列,该公式在 ResellerSales_USD 表中查找每个分销商的记录,并且计算每个分销商所下订单数。这些表是 DAX 示例工作簿的一部分。有关示例数据的详细信息,请参阅获取针对 DAX 和数据模型教程的示例数据

=COUNTROWS(RELATEDTABLE(ResellerSales_USD))

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

对于我们的示例数据库中的分销商 Modular Cycle Systems,在销售表中存在四个订单,因此该函数返回 4。对于 Associated Bikes,该分销商没有销售业绩,因此该函数返回空白。

分销商

销售表中针对此分销商的记录

Modular Cycle Systems

Reseller ID

SalesOrderNumber

445

SO53494

445

SO71872

445

SO65233

445

SO59000

Reseller ID

SalesOrderNumber

Associated Bikes

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

返回页首

注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

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

此信息是否有帮助?

谢谢您的反馈!

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

×