创建动态计算元素
静态计算和视觉对象可能会影响报表的性能,但你可以通过使用计算组、动态格式字符串和字段参数,为语义模型增加灵活性。 这些功能通过简化计算和减少报表可视化效果,使报表可缩放且用户友好。
计算组
使用计算组可以定义可重用的计算,这些计算可应用于多个度量值,从而减少冗余并简化语义模型的维护。 可以使用计算组来简化整个模型中的复杂计算,例如时间智能函数。
假设你需要计算本年度截止到现在 (YTD)、本季度截止到现在 (QTD) 和本月截止到现在 (MTD) 的销售数据。 你决定使用计算组来简化这些计算,而不是为每个时间智能函数创建单独的度量值。
在本示例中,我们有一个名为“时间智能”的计算组,包含以下计算项。
Year-to-Date (YTD) =
CALCULATE(
SELECTEDMEASURE(),
DATESYTD('Date'[Date])
)
//
Quarter-to-Date (QTD) =
CALCULATE(
SELECTEDMEASURE(),
DATESQTD('Date'[Date])
)
//
Month-to-Date (MTD) =
CALCULATE(
SELECTEDMEASURE(),
DATESMTD('Date'[Date])
)
现在,可以在筛选器窗格、切片器、视觉对象中,甚至在度量值的引用中使用计算组。 不同的计算项(YTD、QTD、MTD)会自动显示在视觉对象中以供筛选或展开。
下图中有一个矩阵,其中包含三个会计年度,并显示了 YTD、QTD 和 MTD 的总销售额。 还有一个用于计算组的切片器,可让用户在不同的选项之间切换。 视觉对象配置为:
- 行:Date[Year] 字段
- 列:Time Calc 计算组
- 值:“总销售额”度量值
如果没有计算组,则需要为每个所需的计算(如总销售额、利润、目标等)创建 YTD、QTD 和 MTD 度量值。 相反,可以创建视觉对象并添加计算组和其他度量值。
计算组的动态性和可重用性使其在扩展语义模型时非常强大。
提示
请参阅文档,详细了解如何在 Power BI 中创建计算组。
字段参数
借助字段参数,你可以通过允许用户动态地选择不同的字段或度量值来创建交互式报表。 此功能对于创建可自定义的报表非常有用,用户可以选择他们想要查看的数据。
在我们的场景中,我们创建了一个新的参数,包含“产品”、“类别”和“颜色”字段。 现在,我们使用“总销售额”度量值,并在视觉对象中添加该参数,而不是使用这些单独的字段。 我们还添加了一个切片器,并使用该参数,使用户可以在选定的字段之间切换。 下图展示了“按类别显示的总销售额”柱状图,X 轴配置为参数,Y 轴为总销售额。 还有一个切片器,可以动态切换按产品、类别和颜色显示的总销售额。
在使用字段参数之前,报表开发人员可能会为“按产品显示的总销售额”创建一个视觉对象,并为按类别和颜色显示的总销售额分别重复创建视觉对象。 用户可以通过将不同的视觉对象叠加在一起,并添加书签和按钮,在类似的体验中在不同的视觉对象之间切换。 然而,在报表页中添加的视觉对象越多,可能越会影响性能。
提示
请参阅文档,详细了解如何 让报表读者使用字段参数来更改视觉对象。
动态格式字符串
通过动态格式字符串,可以根据条件调整度量值的格式,从而提升数据可读性和呈现效果。
假设你要根据销售额的大小以不同的格式显示销售数据:
- 销售额超过 1,000,000 时以百万 (M) 格式显示。
- 销售额在 1,000 和 1,000,000 之间时以千 (K) 格式显示。
- 销售额低于 1,000 时以精确值格式显示。
以下代码使用 SWITCH 函数,根据销售额的数值应用不同的格式:
Total Sales with Format =
SWITCH(
TRUE(),
[Total Sales] > 1000000, FORMAT([Total Sales], "$#,##0,,M"),
[Total Sales] > 1000, FORMAT([Total Sales], "$#,##0,K"),
FORMAT([Total Sales], "$#,##0")
)
动态格式字符串简化了数据呈现,减少了对多个计算或视觉对象的需求,并且可以与计算组一起使用,从而减少代码的复杂性和维护工作。
提示
请参阅文档,详细了解如何 为度量值创建动态格式字符串。