创建计算组
通过允许将 DAX 表达式定义为应用于模型中现有度量值的计算项,计算组可以显著减少必须创建的冗余度量值数。 有关计算组的详细信息,请参阅计算组一文。
添加新的计算组
打开本地模型后,在 Power BI Desktop 中,导航到“模型”视图并选择功能区中的“计算组”按钮。 如果尚未在模型资源管理器中,“数据”窗格将打开到“模型”视图。
如果阻止隐式度量值属性处于关闭状态,系统会提示你打开一个对话框窗口以启用计算组的创建。
隐式度量值发生在报表视图中,直接在视觉对象中使用数据窗格中的数据列。 视觉对象允许将其聚合为 SUM、AVERAGE、MIN、MAX 或其他一些基本聚合,这将成为隐式度量值。 创建计算组会阻止创建此类隐式度量值,方法是不再在“数据”窗格中显示数据列旁边的求和符号,并阻止将数据列直接添加到聚合轴上的视觉对象或值。 视觉对象中已创建的现有隐式度量值将继续工作。 必须启用“阻止隐式度量值”属性,因为计算项不适用于隐式度量值。 计算项仅适用于度量值或显式度量值。
在创建新度量值并定义 DAX 表达式以聚合数据列时,将发生度量值或显式度量值。 显式度量值还可以有条件逻辑和筛选器,充分利用 DAX 可以执行的操作。 教程:了解如何在 Power BI Desktop 中创建自己的度量值。
注意
如果具有不希望计算项更改的度量值,则可以按度量值名称忽略显式度量值的方式创建计算项。
选择“是”,或者如果已启用不推荐的隐式度量值属性,则会添加一个计算组,并开始在 DAX 公式栏中定义第一个计算项的 DAX 表达式。
SELECTEDMEASURE() 是 DAX 函数,充当计算项将应用到的度量值的占位符。 可以从其文章中了解 SELECTEDMEASURE DAX 函数。
时间智能示例
Analysis Services 表格模型中的计算组有一个时间智能示例,可用于填充某些计算项。 该示例可以添加到按日期和标记为日期表的 Date 表的任何模型,也可以从 DAX 示例模型下载 Adventure Works DW 2020 PBIX - DAX。
重命名计算组
若要重命名计算组,请在“数据”窗格中双击它,也可以选择它并使用“属性”窗格。
重命名计算组列
若要重命名计算组列,请在“数据”窗格中双击它,也可以选择它并使用“属性”窗格。 选择的列是在视觉对象或切片器中用于应用特定计算项的列。
重命名计算项
第一个计算项创建为 SELECTEDMEASURE(),因此也可以双击或使用“属性”窗格重命名它。
创建其他计算项
若要创建其他计算项,可以使用“计算项”部分或计算组本身的右键单击上下文菜单,然后选择“新建计算项”,或使用“计算项”部分的“属性”窗格。
添加所有时间智能计算项后,计算组如下图所示。
请注意指示错误的红色三角形图标。 存在这些错误是因为示例 DAX 表达式使用名为 DimDate 的 Date 表,因此我需要更新 DAX 表达式以改用名称 Date。 下图显示了更正之前的 DAX 表达式。
对 DAX 表达式进行更正后,错误就会消失。
在计算项中对每个错误进行更正后,不再显示红色三角形警告图标。
重新排序计算项
若要以所需的任何逻辑方式对计算项重新排序,可以在“属性”窗格中选择“计算项”部分,或右键单击计算项的上下文菜单,在列表中向上或向下移动计算项。
将动态格式字符串添加到计算项
默认情况下,计算项使用基础度量值格式。 我们可能需要改为将 YOY% 显示为百分比。 为此,请选择 YOY% 计算项,然后在属性窗格中打开“动态格式字符串”,这样就可以指定 DAX 表达式来创建格式字符串。 对于此示例,它不需要任何条件元素,因此,仅 #,##0.00% 将应用此计算项时的格式更改为百分比,如下图所示。
在报表中使用计算组
若要在报表中使用新的计算组,请转到报表视图,创建矩阵视觉对象并添加以下内容:
- 从日期表到行的月份列
- 从时间智能计算组到列的时间计算
- Orders 度量值到值
注意
如果未在模式下创建度量值 Orders,则可以使用不同的度量值或转到功能区,并使用此 DAX 表达式选择“新建度量值”。
Orders = DISTINCTCOUNT('Sales Order'[Sales Order])
下图显示了生成视觉对象。
矩阵视觉对象中列的计算项显示按每个计算项分组的度量 Orders 的顺序。 还可以通过将计算组列添加到切片器视觉对象,将单个计算项应用于多个度量值。
在度量值中使用计算项
可以使用 DAX 表达式创建新度量值,该表达式将使用特定度量值的计算项。
若要创建 [Orders YOY%] 度量值,可以将计算项与 CALCULATE 配合使用。
Orders YOY% =
CALCULATE(
[Orders],
'Time Intelligence'[Time Calculation] = "YOY%"
)
设置计算组优先级
最后,如果将其他计算组添加到模型,并且想要指定它们应用于度量值的顺序,则可以在“计算组”部分属性窗格中调整计算组优先级,如下图所示。
可以在 Analysis Services 表格模型中的“计算组”文章中了解有关计算组优先级的详细信息。
相关内容
以下文章提供了更多有关数据模型的信息,并详细介绍了 DirectQuery。
- 使用 Power BI 中的模型资源管理器
- 使用 Power BI 中的建模视图
- 自动聚合
- 在 Power BI Desktop 中使用复合模型
- 在 Power BI Desktop 中管理存储模式
- Power BI Desktop 中的多对多关系
DirectQuery 文章: