有关关系的疑难解答

本主题提供有关 PowerPivot for Excel 中的自动关系检测的疑难解答信息。 若要阅读有关手动创建的关系的要求,请参阅关系概述中的“关系的要求”。 有关自动监测的工作方式的信息,请参阅关系概述中的“关系的自动检测和推理”。

有关关系自动检测的疑难解答

以下各部分描述 PowerPivot for Excel 无法检测到关系的一些常见情形。

消息:没有检测到任何关系

在将某个字段拖入现有数据透视表的**“值”**区域时,如果该字段与数据透视表中已存在的任何字段都不相关,则通知栏将始终显示一条消息,指示需要一个关系。但是,有时通知后仍无法检测到关系。导致这种情况的原因有很多:

  • 关系检测算法取决于与主键列具有相似名称的外键列。如果列名的相似度不够,建议您打开 PowerPivot 窗口,并手动创建表之间所需的关系。

  • 可能不支持这些数据类型。如果数据透视表中使用的任何表仅包含不支持的数据类型的列,则无法检测到关系。在这种情况下,应使用**“创建关系”**对话框,手动创建数据透视表中活动表之间所需的关系。有关详细信息,请参阅创建两个表之间的关系

消息:无法创建更多关系

当您尝试创建关系时可能会出现此消息。在这种情况下,很可能是您尝试联接的两个表之间已经存在关系。

当您从关系数据源一起导入多个表时,PowerPivot for Excel 通常会自动监测并创建关系。因为任意两个表之间都不能创建多个关系,所以很可能是您已在所选的表之间定义了一个关系。您可以通过使用**“管理关系”**对话框来查看现有关系的列表,如查看和编辑关系中所述。

将不相关的字段添加到数据透视表,但没有显示任何消息

自动关系检测仅针对度量值触发,而不针对数据透视表的行或列标签中使用的计算字段触发。因此,在开始生成数据透视表时,可能会添加不相关的表,但看不到任何关系,直至您将字段拖入**“值”**区域。

表之间的关系无效

在某些情况下,添加到数据透视表的表根本无法联接到其他任何表。例如,两个表可能正好具有部分匹配的数据,但实际上与已使用的其他表之间没有逻辑关系。

如果将某个表添加到无法联接到其他表的数据透视表,则通常自动检测将不返回任何结果。在其他情况下,您通常可以从数据透视表中的结果得知这些字段不会生成有意义的计算。

自动检测功能创建了错误的关系

通过使用自动检测功能创建关系时,某种算法会根据表中的值创建所有可能关系的列表,然后依据这些可能关系的概率对其进行排名。随后,PowerPivot for Excel 将仅创建最可能的关系。因此,如果您的表中包含多个可能用作键的列,则有些关系可能会排在后面,那么即使关系有效,也将不会自动创建这些关系。

如果自动检测算法建议了一个并不会解决您的业务问题的关系,则应该删除该关系,并使用正确的键列手动创建一个关系。