Power BI 微课堂 | 第19课:创建并使用度量值

published: 2023-11-14

今天,我们开始学习:创建并使用度量值,了解 Power BI 中度量值的作用,以及如何通过 DAX 计算创建度量值,并将其应用于报表中。


》度量值的作用

在 Power BI 中,度量值是在查询时对数据执行的定义计算。度量值会在你与报表交互时进行计算,不会存储在数据库中。

通过使用度量值,你可以在 Power BI Desktop 中创建某些功能强大的数据分析解决方案。

本期微课堂使用 Power BI Desktop 的 Contoso 销售示例文件,包含了来自虚构公司 Contoso 的线上销售数据。

如需下载示例文件跟随练习,请点击页面右侧的下载按钮。


》实例:动度量值

通常情况下,Power BI Desktop 会自动创建度量值。下面,我们将基于示例文件,教你如何在 Power BI Desktop 中创建并应用度量值。

首先,在 Power BI Desktop 中选择菜单栏中的“文件”-“打开”,导航到示例文件存放位置,打开示例文件。

此时,Power BI 会默认显示“报表”视图。在界面右侧的“数据”窗格中,展开“Sales”表。勾选“SalesAmount”字段,或将此字段拖到报表的画布上。

如下图所示,视图将自动创建一个新的视觉对象,并显示了“Sales”表中 SalesAmount 字段所有值的总和。

需要详细说明的是:

  • “数据”窗格中带 ∑ 图标的任何字段(列)均为数值类型字段,且表示值可以被聚合。

  • 当 Power BI Desktop 检测到数值类型的数据时,它不会显示包含很多值的表(本示例的 SalesAmount 字段有 200 万行),而是自动创建和计算度量值来聚合数据。

  • 求和是数值类型数据的默认聚合方式,但可以轻松应用不同类型的聚合方式,如平均值或计数。理解聚合是了解度量值的基础,因为每个度量值都将执行某种类型的聚合操作。

若要更改图表的聚合方式,可单击选中 SalesAmount 图表,在右侧“可视化”窗格点击处于 Y 轴的 SalesAmount 字段的向下箭头,并在下拉菜单中,选择“平均值”。

如下图所示,SalesAmount 图表的销售额总和将更改为所有销售额的平均值。

实际分析中,我们可以根据所需效果更改聚合类型。但是,并非所有聚合类型都适用于每个数值类型的数据字段。

例如,对于 SalesAmount 字段来说,“总和”和“平均值”非常有用,而“最小值”和“最大值”也有其用处。但“计数”对于此字段则没有实际意义,因为虽然它是数值,但实际上代表的是货币。

通过度量值计算的值,会随着用户与报表的交互而发生变化。例如,如果将“RegionCountryName”字段从“Geography”表拖到现有的“SalesAmount”图表,则图表会变化为显示每个国家/地区的平均销售额。

请注意,由于与报表进行交互而导致度量值更改时,也会影响度量值的上下文。每当与报表可视化效果交互时,都会改变度量值计算和显示其结果所在的上下文。


》创建和使用自定义度量值

在大多数情况下,Power BI Desktop 会根据所选字段和聚合的类型自动计算和返回值。但在某些情况下,你可能要创建自己的度量值来执行更复杂独特的计算。

在 Power BI Desktop 中,可以通过数据分析表达式 (DAX)公式语言来自定义创建度量值。

大部分 DAX 公式使用与 Excel 公式相同的函数、运算符和语法。但是,DAX 函数主要用于在你与报表进行交互时处理关系数据,并执行更动态的计算。

其中,有超过 200 个 DAX 函数不仅可以实现总和与平均值等简单聚合,还可实现更复杂的统计和筛选函数。关于 DAX 函数的详细信息,请关注后续微课堂更新。

值得一提的是,在你创建自定义度量值时,它会被称为模型度量值,并被添加到所选表的“字段”列表。

创建模型度量值的优势在于,可以任意命名模型度量值,使其更容易识别。同时,你也可以在其他 DAX 表达式中将它们用作参数,以快速执行复杂的计算。


》快速度量

许多常见计算都可用作快速度量,它们根据窗口中的输入内容编写 DAX 公式。这些功能强大的快速计算对于学习 DAX 或发布自定义度量值也很有帮助。

在 Power BI 中,我们可以通过两种方式创建快速度量:

❶ 在“数据”窗格的字段列表中,右键单击某个数值型字段或选择“更多选项”(…),然后在下拉菜单中选择“新建快速度量”。

❷ 在 Power BI Desktop 顶部工具栏的“主页”选项卡的“计算”中,选择“快度量值”。


》实例:创建度量值

假设,我们想要通过减去总销售额的折扣和收益来分析净销售额。由于 Sales 表中没有现成的字段,所以需要创建一个名为 Net Sales 的度量值,目的是用 SalesAmount 字段值的总和减去 DiscountAmount 和 ReturnAmount 字段值的总和。

首先,在右侧“数据”窗格中,右键单击“Sales”表,或选择“更多选项”(…)。在下拉菜单中,选择“新建度量值”。此操作可将新的度量值保存在“Sales”表中,便于查找。

你也可以通过顶部工具栏中的“主页”选项卡-“计算”中的“新建度量值”按钮来创建新的度量值。

从下图可以看到,公式栏出现在报表画布的顶部。我们可以在此重命名度量值并输入一个 DAX 公式。

默认情况下,每个新度量值都会自动命名为“Measure”。如果不进行重命名,新度量值将被命名为“Measure 2”、“Measure 3”,依此类推。

因为希望此度量值更易于识别,所以在公式栏中将其更改为“Net Sales”。然后,开始输入公式。在等号后,开始键入“Sum”。

键入过程中,Power BI 会自动出现一个下拉的建议列表,其中显示以你键入的字母开头的所有 DAX 函数。如有必要,你可以向下滚动并选择列表中的“SUM”,然后按 Enter 。

然后,公式框中将会出现一个左括号和一个下拉的建议列表,后者包括可以传递到 SUM 函数的所有可用的列。

请注意,表达式将始终出现在左括号和右括号之间。以此为例,表达式包含一个单独的参数以传递给 SUM 函数:“SalesAmount”列。

我们继续键入“SalesAmount”,直到 Sales[SalesAmount] 是建议列表中仅剩的值。

需要说明的是,Sales[SalesAmount] 是以表名称[列名称]的格式显示,这被称为“完全限定的列名称”,可以使公式中的引用字段和表来源更易于理解。

按住 Enter,选用建议列表中的 Sales[SalesAmount],然后手动键入右括号。提示:语法错误通常由缺少或错放右括号导致。

随后,我们需要在公式中减去其他两个汇总字段。

在第一个表达式的右括号后,依次键入空格、减号运算符 (-) 和空格,并输入另一个 SUM 函数,然后开始键入“DiscountAmount”,直到可以选择“Sales[DiscountAmount]”列作为参数。添加右括号。

然后,依次键入空格、减号运算符、空格、另一个以 Sales[ReturnAmount] 作为参数的 SUM 函数和右括号。

按 Enter 或选择公式栏中的“提交”(图标√)完成并验证公式。经验证后的“Net Sales”度量值已可以在“字段”窗格的“Sales”表中使用。

如果在输入公式时空间不足,或者希望将公式放在单独的行上,请选择公式栏右侧的向下箭头以展开更多空间。

向下箭头会变为向上箭头,并显示大框。此外,你还按住 Alt + Enter 建给公式换行,或按 Tab 添加制表符间距,从而让公式看起来更直观易懂。


》实例:在报表中使用度量值

将刚创建好的“Net Sales”度量值添加到报表画布上,并按国家/地区查看净销售额的变化。

从“Sales”表中勾选“Net Sales”度量值,或将其拖动到报表画布。从“Geography”表中勾选“RegionCountryName”字段,或将其拖到“Net Sales”图表中。

若要对比查看各国家/地区的净销售额和总销售额有何差异,可以在视图中添加 Sales 表中的“SalesAmount”字段。

从下图中可以看到,图表现在使用了两个度量值:Power BI 自动求和的“SalesAmount”和我们手动创建的“Net Sales”度量值。每个度量值基于维度字段“RegionCountryName”的粒度进行计算。

度量值提供了许多功能,让用户能够从数据中获得想要的见解。我们可以像使用任何其他表字段一样使用度量值:只需将其拖放到报表画布或可视化字段即可。

此外,度量值还可以与切片器无缝集成,实现动态划分数据,这意味定义一次度量值后,便可以在许多不同的可视化效果中使用它。

通过本期微课堂,相信你已了解如何使用公式栏来创建度量值,以最具意义的方式为它们命名,并使用 DAX 建议列表找到并选择正确的公式元素。

更多度量值的使用方法,请持续关注后续 Power BI 微课堂更新~



以上就是关于「创建并使用度量值」的全部内容。感谢您的耐心阅读,更多 Power BI 学习资源,请持续关注优阅达大数据生态。