关联关系
关系
在导入多个表后,我们很可能要使用这些表中两个及以上的表中的数据来执行一些分析。为了准确计算出结果并在报表中显示正确信息,这些表与表之间的关系建立是必需的。Power BI Desktop可轻松创建这些关系。事实上,在大多数情况下,我们无需执行任何操作,自动检测功能会为我们执行相关操作。 但有时,我们可能需要手动去建立表与表之间的关系,或者需要对关系进行更改。 无论哪种方法,都有必要了解 Power BI Desktop 中的关系及其创建和编辑方式。
创建关系
导入CompanyProject.xlsx和ProjectHours.xlsx,并对导入数据进行调整、应用。
同时查询两个或多个表,则在加载数据时,Power BI Desktop会尝试为去查找并创建关系。关系选项“基数”、“交叉筛选方向”和“激活此关系”会自动设置。Power BI Desktop会自动查看表中你正在查询的列名,以确定是否存在任何潜在关系。若存在,则将自动创建这些关系。如果Power BI Desktop无法以高置信度确定存在匹配项,则不会创建关系。 但是,你仍可使用“管理关系”对话框来手动创建或编辑关系。点击左侧模型 - 选择工具栏中的管理关系
在管理关系中,我们可以选择让Power BI Desktop自动检测关系,也可以手动建立关系,这里我们采用手动建立关系。
首先选择Sheet1表,Sheet1(2)会自动被选择。选中Sheet1中项目名称列,在选中Sheet1(2)中项目列。默认情况下,Power BI Desktop会为新关系自动配置“基数”(方向)、“交叉筛选方向”和“激活此关系”选项。但是,我们可以根据需要更改这些设置。
可以看到,这里Sheet1上的项目名称已经与Sheet1(2)上的项目进行了单向的关系建立。
这里介绍关系建立中会遇到的配置介绍
基数
“基数”选项可以具有以下设置之一:
- 多对一(* :1):多对一关系是最常见的默认关系类型。 这意味着一个给定表中的列可具有一个值的多个实例,而另一个相关表(通常称为查找表)仅具有一个值的一个实例。
- 一对一(1:1):在一对一关系中,一个表中的列仅具有特定值的一个实例,而另一个相关表也是如此。
- 一对多(1:* ):在一对多关系中,一个表中的列仅具有特定值的一个实例,而另一个相关表可具有一个值的多个实例。
- 多对多( : ):借助复合模型,可以在表之间建立多对多关系,从而消除了表中对唯一值的要求。它还删除了旧解决办法,如为建立关系而仅引入新表。
交叉筛选器方向
交叉筛选方向”选项可以具有以下设置之一:
- 双向:出于筛选目的,两个表被视为如同一个表。“双向”设置非常适用于其周围具有多个查找表的单个表。例如,具有部门查找表的实际销售额表。此配置通常称为星型架构配置(一个具有多个查找表的中心表)。但是,如果你拥有两个或多个具有查找表(部分查找表共有)的表,则“双向”设置不适合。继续讲之前的示例,在本例中你还一个预算销售表,它记录了每个部门的目标预算。并且,部门表格同时连接到标售表和预算表。对于此类配置,请避免“双向”设置。
- 单向:最常用的默认方向,这意味着连接表中的筛选选项适用于将求值总和的表。 如果你在 Excel 2013 或更早的数据模型中导入了 Power Pivot,则所有关系都将具有单个方向。
关系建立的效果
下图是两张表未建立关系前,我们对优先级与小时数的统计,很明显每个项目的小时数均为“256”,这也是总数。显然,此数字不正确。这是为什么呢?这是因为如果这两个表之间不存在关系,则不能由一个表中的值(“Sheet1”表中的“优先级”)切分另一个表中的值(“Sheet(2)”表中的“小时数”)来计算后者值的总数 。
当我们将两张表建立关系之后,我们发现,优先级与小时数的统计正常,两张表通过项目名称列进行关联。由此,我们可以知道,当我们需要通过对两张及以上的表进行数据统计分析前,需要对需要进行统计的表建立关系。
本教程仅介绍了建立关系最基础的方式,若想要对关系建立有更深入的学习与了解,可访问微软官方文档进行查看在 Power BI Desktop 中创建和管理关系