在数据透视表中使用关系

数据透视表传统上是使用 OLAP 多维数据集和其他在表之间已经具有丰富连接的复杂数据源构造的。不过,在 PowerPivot 工作簿中,您可以随意向现有数据源添加数据,也可以在表之间生成自己的连接。尽管这种灵活性可实现很强的功能,它也可以很容易地将不相关的数据联系起来,导致奇怪的结果。

本节介绍如何在数据透视表上下文中使用关系,以及如何连接数据以获得所需的报表。

数据透视表中的不相关数据:问题和解决方案

您是否创建过这样的数据透视表?您打算创建区域采购明细,因此在**“值”区域放入了一个采购金额字段,在“列标签”**区域放入了一个销售区域字段。但结果是错误的。

错误的透视表

如何修复此问题?

问题在于,添加到数据透视表的字段可能位于同一工作簿中,但包含每列的表并不相关。例如,您可能用一个表列出每个销售区域,另一个表列出所有区域的采购信息。若要创建数据透视表并得到正确结果,您需要在这两个表之间创建关系。

创建关系后,数据透视表将来自采购表的数据与区域列表正确组合起来,结果如下所示:

正确的透视表

PowerPivot for Excel 包含 Microsoft Research (MSR) 为自动检测和修复此类关系问题而开发的技术。

使用自动检测

自动检测检查添加到包含数据透视表的工作簿中的新字段。如果新字段与数据透视表的列和行标题不相关,在数据透视表顶部的通知区域会出现一条消息,通知您可能需要关系。PowerPivot 还将分析新数据以查找潜在关系。

您可以忽略此消息而继续使用此数据透视表;但是,如果单击**“创建”**,此算法将开始生效并对数据进行分析。根据新数据的值、数据透视表的大小和复杂性以及您已创建的关系,此过程最多可能需要几分钟。

该过程包括两个阶段:

  • 检测关系。完成分析后,您可以查看建议的关系列表。如果您不取消,PowerPivot 将自动继续执行下一步,即创建关系。

  • 创建关系。应用关系之后,将出现一个确认对话框,您可以单击**“详细信息”**链接以查看已创建的关系列表。

您可以取消检测过程,但不能取消创建过程。

MSR 算法搜索关系的“最佳可能”集合,以便将模型中的各个表关联起来。该算法检测新数据的所有可能关系,并且会考虑到列名、列的数据类型、列内的值以及位于数据透视表中的列。

PowerPivot 然后会根据内部试探法确定的方式选择“质量”得分最高的关系。有关详细信息,请参阅关系概述有关关系的疑难解答

手动编辑关系

如果自动检测没有给出正确结果,可以手动编辑关系、删除关系或创建新关系。有关详细信息,请参阅创建两个表之间的关系

注意注意

请注意,如果要生成数据透视表并确定需要添加关系或新数据,必须先返回 PowerPivot 窗口。添加关系或更改需要的数据后,可以切换回 Excel 工作簿。但是,如果有任何更改影响数据透视表,则需要重新计算工作簿。

数据透视表中的空白行(未知成员)

因为数据透视表将相关数据表组合在一起,如果任何表包含不能用键或匹配值相关的数据,则必须以某种方式处理这些数据。在多维数据库中,处理不匹配数据的方法是将所有没有匹配值的行分配给未知成员。在数据透视表中,未知成员显示为空白标题。

例如,如果创建的数据透视表按商店对销售额分组,但销售表中的部分记录没有列出商店名称,则所有没有有效商店名称的记录将分为一组。

有关详细信息,包括对不匹配值进行计数或排除的示例,请参阅DAX 公式中的上下文