欢迎关注
【BI佐罗数据分析】
,今日精华包括:视频案例,技巧干货,企业案例。
2024 年对于 Power BI 来说是一个充满创新和进步的年份。作为全球领先的商业智能工具,Power BI 在这一年不断优化功能、扩展能力,为数据分析师和商业用户带来了更多的价值与可能性。其中最重要的功能应该是视觉对象计算,虽然视觉对象计算已经推出了十个月,但是有不少小伙伴并不知道如何使用,本文将带你全面了解 Power BI 中的视觉对象计算功能。
视觉对象计算是直接在视觉对象上定义和执行的 DAX 计算。通过视觉对象计算,可以更轻松地创建以前难以创建的计算,从而简化 DAX、简化维护,带来更好的性能。它的核心思想是:用户看到的数据是计算的输入,而计算的结果直接反映在视觉对象中。
视觉对象计算可以引用视觉对象中的任何数据(数据必须存在于视觉对象之上,包括列、度量值或其他视觉对象计算)。
视觉对象计算不同于 DAX 中的其他计算选项
:
• 视觉对象计算不会存储在模型中,而是存储在视觉对象上。这意味着视觉对象计算只能引用视觉对象上的内容。必须先将模型中的任何内容添加到视觉对象,然后视觉计算才能引用该视觉对象,从而释放视觉计算,使其与筛选器上下文和模型的复杂性相关。
• 视觉计算将计算列中上下文的简单性与度量值按需计算的灵活性相结合。
• 与度量值相比,视觉计算对聚合数据(而不是细节级别)进行操作,通常会带来性能优势。当可以通过新度量值或视觉计算实现计算时,后者通常会带来更好的性能。
• 由于视觉计算是视觉对象的一部分,因此可以引用视觉结构,从而提高灵活性。
可用函数
可以在视觉计算中使用许多现有的 DAX 函数。由于视觉计算在视觉矩阵的范围内工作,因此依赖于模型关系的函数不可用。视觉计算还引入了一组特定于视觉计算的函数。其中许多函数更易于使用 DAX 窗口函数的快捷方式。
函数
说明
示例
COLLAPSE
计算在轴的较高级别计算。
父级百分比 = DIVIDE([Sales Amount], COLLAPSE([Sales Amount], ROWS))
COLLAPSEALL
计算在轴的总级别计算。
总计百分比 = DIVIDE([Sales Amount], COLLAPSEALL([Sales Amount], ROWS))
EXPAND
计算在轴的较低级别计算。
子级平均值 = EXPAND(AVERAGE([Sales Amount]), ROWS)
EXPANDALL
计算在轴的叶级别计算。
叶级别的平均值 = EXPANDALL(AVERAGE([Sales Amount]), ROWS)
FIRST
指轴的 first 行。
ProfitVSFirst = [Profit] – FIRST([Profit])
ISATLEVEL
报告指定列是否存在于当前级别。
IsFiscalYearAtLevel = ISATLEVEL([Fiscal Year])
LAST
指轴的 last 行。
ProfitVSLast = [Profit] – LAST([Profit])
MOVINGAVERAGE
在轴上添加移动平均。
MovingAverageSales = MOVINGAVERAGE([Sales Amount], 2)
NEXT
指轴的 next 行。
ProfitVSNext = [Profit] – NEXT([Profit])
PREVIOUS
指轴的 previous 行。
ProfitVSPrevious = [Profit] – PREVIOUS([Profit])
RANGE
指轴的 rows 的切片。
AverageSales = AVERAGEX(RANGE(1), [Sales Amount])
RUNNINGSUM
在轴上添加一个正在运行的求和。
RunningSumSales = RUNNINGSUM([Sales Amount])
计算模板
之前使用其他计算选项需要编写很复杂的 DAX 语句才能实现的功能,使用视觉对象计算,一个函数就能搞定,因为视觉对象计算为我们内置了九个计算模板。
计算模板
:
•
运行求和。
计算值的总和,将当前值与前面的值相加。使用 RUNNINGSUM 函数。
•
移动平均。
通过将值的总和除以 window 的大小,计算给定 window 中一组值的平均值。使用 MOVINGAVERAGE 函数。
•
父级百分比。
计算相对于其父级的值的百分比。使用 COLLAPSE 函数。
•
占总计的百分比。
使用 COLLAPSEALL 函数计算值相对于所有值的百分比。
•
子级的平均值。
计算子值集的平均值。使用 EXPAND 函数。
•
与之前相比。
使用 PREVIOUS 函数将值与前面的值进行比较。
•
与下一个。
使用 NEXT 函数将值与后续的值进行比较。
•
与第一。
使用 FIRST 函数将值与 first 值进行比较。
•
与上一个。
使用 LAST 函数将值与 last 值进行比较。
轴
许多视觉对象函数都有一个可选的
轴
参数,该参数只能在视觉计算中使用。轴影响视觉计算遍历视觉矩阵的方式。默认情况下,轴参数设置为视觉对象中的 first 轴。对于许多视觉对象,first 轴为 ROWS,这意味着视觉计算从上到下计算视觉对象矩阵中的逐行计算。
下表显示了轴参数的有效值:
应用
视觉对象计算更新之后,我们介绍了许多使用视觉对象计算实现的案例,这些往往是传统 DAX 计算难以实现的。
一个函数实现动态移动平均,参考:
PowerBI 新手必读:可视化计算构建动态移动平均
PREVIOUS 函数获取上一周期数据。
NEXT 函数获取下一周期数据。
RUNNINGSUM 函数获取年初至今数据。