Power BI 微课堂 | 第20课:通过计算表建立表关系

published: 2023-12-26

今天,我们开始学习:通过计算表建立表关系,了解如何通过 DAX 表达式创建新表,以合并两个现有的表。


》计算表的作用

大多数情况下,我们都是通过将数据从外部数据源导入模型来创建表。但借助“计算表”,你可以根据已加载到模型中的数据,来添加新表。

计算表是通过创建定义表值的数据分析表达式(DAX)公式,而非从数据源中查询值,并将值加载到新表的列中。

计算表适用于你希望将其作为模型的一部分而存储的中间计算和数据,而非在运行中计算的或作为查询结果而存储的中间计算和数据。例如,合并或交叉联接两个现有表。

与其他 Power BI Desktop 表一样,计算表也能与其他表建立关系。计算表列具有数据类型、格式设置,并能归属于数据类别。

你可以随意对列进行命名,并将其像其他字段一样添加到报表的可视化效果中。如果计算表从其中提取数据的任何表刷新或更新,则将重新计算。

如果表使用的是 DirectQuery 中的数据,则计算表不会刷新,因为 DirectQuery 只会在刷新语义模型后反映出更改。所以,如果表需要使用 DirectQuery,则最好 DirectQuery 中的表也经过计算。


》创建计算表

在 Power BI Desktop 中,无论是“报表”视图、“表格”视图,还是“模型”视图,我们都可以用工具栏中的“新建表”选项,创建计算表。

简单举例,假设你是人事部经理,数据库中有一个西北员工表(左图)和一个西南员工表(右图),你想要将这两个表合并为一个名为“西部地区员工”的表。

首先,在 Power BI Desktop 中随便打开一个“报表”视图、“表格”视图或“模型”视图,并在“计算”工具栏中选择“新建表”。

PS:建议在“表格”视图中进行操作,因为这样可以立即看到新的计算表。

然后,在公式栏中输入以下 DAX 公式:

Western Region Employees =UNION('Northwest Employees', 'Southwest Employees')

这样,名为“西部地区员工”的新表就创建好了。可以看到,新表的数据格式与“数据”窗格中其他表相同。

此外,你也可以创建计算表与其他表之间的关系、添加度量值和计算列,并将字段添加到报表中,就像任何其他表一样。


》用于创建计算表的 DAX 函数

DAX 表达式提供了超过 200 个函数、运算符和构造的库,可为创建度量值提供巨大的灵活性,几乎可以计算任何数据分析所需的结果。

所以,我们可以通过任何会返回表结果的 DAX 表达式来定义计算表。 例如,通过以下公式对另一个表进行简单引用:

New Western Region Employees = 'Western Region Employees'

此外,还可以协同使用计算表和 DAX 来解决许多分析问题。下面是你可能会用到的一些常见的 DAX 表函数:

  • DISTINCT :针对一个列参数,返回由一列组成的一个表,列中包含不同(唯一)值。或针对一个表表达式参数,返回包含不同(唯一)值组合的多个列。

  • VALUES:返回单列表,其中包含指定表或列中的非重复值。

  • CROSSJOIN:返回一个表,其中包含参数中所有表的所有行的笛卡尔乘积

  • UNION:从一对表创建联合(联接)表。

  • NATURALINNERJOIN:执行一个表与另一个表的内部联接。

  • NATURALLEFTOUTERJOIN:使用右表执行与左表的联接。

  • INTERSECT:返回两个表的行交集,保留重复项。

  • CALENDAR:返回一个表,其中有一个包含一组连续日期的名为“Date”的列。

  • CALENDARAUTO:返回一个表,其中有一个包含一组连续日期的名为“Date”的列。

篇幅有限,本文仅提供了计算表的简单介绍,更多计算表和 DAX 表达式的使用场景,请留意后续微课堂更新。



以上就是关于「通过计算表建立表关系」的全部内容。感谢您的耐心阅读,更多 Power BI 学习资源,请持续关注优阅达大数据生态。