传统上,数据透视表是使用 OLAP 多维数据集和其他复杂数据源构建的,这些数据源在表之间已经有丰富的连接。 但是,在 Excel 中,可以自由导入多个表并在表之间构建自己的连接。 虽然这种灵活性很强大,但它也很容易将不相关的数据放在一起,从而导致奇怪的结果。
创建过这样的数据透视表吗? 你打算按区域创建购买明细,因此将购买金额字段拖放到 “值” 区域中,并将“销售区域”字段拖放到“ 列标签 ”区域中。 但结果是错误的。
如何解决此问题?
问题在于,添加到数据透视表的字段可能位于同一工作簿中,但包含每个列的表并不相关。 例如,您可能有一个列出每个销售区域的表和另一个列出所有区域购买的表。 若要创建数据透视表并获取正确的结果,需要在两个表之间创建关系。
创建关系后,数据透视表会将购买表中的数据与区域列表正确合并,结果如下所示:
Excel 包含 Microsoft Research (MSR) 开发的技术,用于自动检测和修复此类关系问题。
使用自动检测
自动检测将检查添加到包含数据透视表的工作簿中的新字段。 如果新字段与数据透视表的列标题和行标题不相关,则数据透视表顶部的通知区域中将显示一条消息,告知您可能需要关系。 Excel 还将分析新数据以查找潜在关系。
可以继续忽略该消息并使用数据透视表;但是,如果您单击 Create,该算法会开始工作并分析您的数据。 根据新数据中的值、数据透视表的大小和复杂性以及已创建的关系,此过程可能需要几分钟时间。
该过程包括两个阶段:
- 检测关系。 分析完成后,可以查看建议的关系列表。 如果不取消,Excel 将自动执行创建关系的下一步。
- 关系的创建。 应用关系后,将显示一个确认对话框,您可以单击“ 详细信息 ”链接以查看已创建关系的列表。
您可以取消检测过程,但无法取消创建过程。
MSR 算法搜索“可能的最佳”关系集来连接模型中的表。 该算法会检测新数据的所有可能关系,同时考虑列名、列的数据类型、列内的值以及数据透视表中的列。
然后,Excel 将选择“质量”分数最高的关系(由内部启发式确定)。 有关详细信息,请参阅 关系概述 和关系 疑难解答。
如果自动检测没有提供正确的结果,您可以编辑关系、删除关系或手动创建新关系。 有关详细信息,请参阅 在两个表之间创建关系 或在 图表视图中创建关系
数据透视表中的空白行 (未知成员)
由于数据透视表汇集了相关的数据表,因此,如果任何表包含无法通过键或匹配值关联的数据,则必须以某种方式处理这些数据。 在多维数据库中,处理不匹配数据的方法是将所有没有匹配值的行分配给未知成员。 在数据透视表中,未知成员显示为空白标题。
例如,如果创建的数据透视表应按商店对销售额进行分组,但该销售额表中的某些记录未列出商店名称,则没有有效商店名称的所有记录都将分组到一起。
如果最终是空白行,则有两种选择。 可以通过在多个表之间创建关系链来定义有效的表关系,也可从数据透视表中删除导致出现空白行的字段。