2024年2月开始,PowerBI迎来了一种全新的计算方式:可视化计算,前面介绍了它的基本用法:
2024开年Power BI重磅更新,先来体验一下可视化计算怎么用?
有了可视化计算之后,在PowerBI中除了我们之前见过的普通DAX函数,也有专用于可视化计算的DAX函数,这些函数只能用于可视化计算,不能用于度量值、计算列。
这里我们以内置的计算模式为起点,来学习可视化计算的常用逻辑以及对应的专属DAX函数。
目前内置的模式有9个:
以PowerBI星球案例模型为例,分别来看看他们的效果。本文先来看第一个模式:运行总和。
运行总和更直观的叫法应该是滚动累计求和,将当前值与前面的值累加起来。它使用的的是 RUNNINGSUM 函数。
RUNNINGSUM语法返回在视觉计算数据网格的给定轴上计算的运行总和,该函数仅可用于可视化计算。RUNNINGSUM(
求和字段,
Axis,//可选,轴参数,确定求和的方向
空白参数, //可选,排序时如何处理空值,暂时无用
reset // 可选,重置参数,控制从哪里开始重新计算
)
仅仅通过语法可能难以理解,下面通过具体的示例,可以更轻松地熟悉它的用法。
基本用法
用这些字段先做个矩阵:
右键新建计算,选择“运行总和”,只需要用矩阵中的度量值作为第一个参数:
默认从上到下开始连续求和,通过另外几个参数,可以进行更灵活的控制。
利用轴参数按不同的方向汇总
第二个参数是轴,默认情况下,Axis 参数设置为视觉对象中的第一个轴。对于许多视觉效果,第一个轴是 ROWS,这意味着视觉计算是在视觉矩阵中从上到下逐行评估的。这个参数可以是下面几个值:
ROWS : 从上到下垂直计算各行。
COLUMNS : 从左到右跨列水平计算。
ROWS COLUMNS : 从上到下垂直计算各行,再从左到右逐列继续计算。
COLUMNS ROWS : 从左到右水平计算各列,再从上到下逐行继续计算
当轴参数为ROWS:
运行总和 = RUNNINGSUM( [销售额] , ROWS)
按行字段累计,也就是从上到下,按每个产品的销售额逐行累计,这就是省略时默认的效果是一样的。
轴参数是COLUMNS,就会从左到右开始累计,也就是按年度逐列累计。
运行总和 = RUNNINGSUM( [销售额] , COLUMNS )
先按行累加,然后再按列累加,这个矩阵中,先计算2022年每个产品的累计,然后在此基础上,再把2023年的逐个产品销售额累加到一起。
轴参数为ROWS COLUMNS :
运行总和 = RUNNINGSUM( [销售额] , ROWS COLUMNS )
先对第一个产品按年度累计,然后再开始按第二个产品继续累计。
轴参数为COLUMNS ROWS:
运行总和 = RUNNINGSUM( [销售额] , COLUMNS ROWS )
先按年累计,然后再继续按产品累计。
其他可视化计算函数,很多也有轴这个参数,逻辑与上面的也都是一样的。
利用重置参数按层级重新计算
重置参数控制计算是否重置,从哪个层级开始重新计算。接受的值为:NONE、LOWESTPARENT、HIGHESTPARENT 或整数。
如果为零或省略,则计算不会重置。等效于 NONE。如果为正值,则整数标识从最高层级开始重新计算,HIGHESTPARENT 等效于 1。如果为负值,则整数标识从最低层级的父级开始重新计算。LOWESTPARENT 等效于 -1。
依然是上面的矩阵,前面的例子都省略了这个参数,所以会一直累计下去,这里我们加上重置参数看看是什么效果。
当重置参数为1,表示按最高层级重新计算,这个矩阵,最高层级是产品类别,所以结果就相当于在每个产品类别内部累计求和,切换到下一个产品类别时,重新开始累计。
运行总和 = RUNNINGSUM( [销售额] , ROWS, ,1 )
这就是计算重置的效果。
在上面矩阵基础上,行再增加一个层级,比如城市,可以更好的理解这个参数的作用。
城市是最高层级,当参数是1时,按城市运行求和,切换城市时重新计算:
当参数是2时,则按次一级的层级,也就是按产品类别运行求和,切换类别时重新计算:
重置参数为负数时,相当于按倒数来确定层级,最明细级别的父级为-1,再上一级为-2,依次类推。
上面的矩阵行标题有3个层级,产品类别是最小的父级,参数为-1时,相当于上面参数为2的效果;参数为-2时,相当于参数为1的效果。
以上就是可视化计算函数RUNNINGSUM的用法,它进行的各种累计求和逻辑,都是在可视化层面上进行的,不需要考虑数据模型,以一种更直观更易于理解的方式来进行各种运算。