在Excel中可以很方便的引用单元格,如果你想在PowerBI图表中获取相邻两个类别之间的差异,用之前的DAX是一个较为麻烦的事,因为DAX不能识别图表中数据的相对位置,现在有了可视化计算,这个需求就可以很轻松的实现。
这里继续来学习最近新推出的可视化计算,如果你还不熟悉,可以先看看之前已经介绍的几篇文章:
Power BI重磅更新,先来体验一下可视化计算怎么用?
深入了解Power BI可视化计算(1):RUNNINGSUM运行总和
深入了解Power BI可视化计算(2):MOVINGAVERAGE移动平均
深入了解Power BI可视化计算(3):占比和COLLAPSE 函数
在目前内置的计算模式中,我们来了解一下最后4个:
这个界面翻译有出入,从上到下应该是 与之前、之后、第一个、最后一个相比的差异,其中用到的函数分别是:
-
PREVIOUS 前一个
-
NEXT 后一个
-
FIRST 第一个
-
LAST 最后一个
通过这几个函数,我们就可以灵活地按照位置来引用"单元格"的值。
这几个函数类似,都只能用于可视化计算,这里以PREVIOUS函数来看看它们的基本语法。
NEXT函数的语法与PREVIOUS完全相同(功能相反);
而FIRST函数和LAST函数与上面的语法相比,只缺少第二个参数(偏移幅度),其他参数
也完全相同。
仍然以PowerBI星球案例模型为例,来制作一个矩阵如下图:
前一列 = PREVIOUS([销售额],,COLUMNS)
这个结果就是引用左侧单元格,在这个矩阵中也就是得到上年的数据。
关于轴参数,还有ROWS COLUMNS和COLUMNS ROWS,跨行或者跨列时可以继续引用,关于它们的用法,可参考之前
RUNNINGSUM
的介绍。
如果在产品类别内,引用上一行的值,不跨类别引用,就要用到最后一个重置参数(前面参数省略时,在不产生歧义的情况下,可以不用逗号占位)。
前一行 本类别 =
PREVIOUS([销售额],LOWESTPARENT)
重置参数有效值为:None、LowestParent、HighestParent 或整数,省略时默认值为“None”。
下一列 = NEXT([销售额],COLUMNS)
NEXT其他参数的用法和上面的PREVIOUS完全一样,这里就不再介绍了。
通过PREVIOUS和NEXT函数,搭配偏移幅度和轴参数,我们可以轻松实现引用视觉对象中前、后、左、右的“单元格”数据,非常灵活。
最后,再来看一下类似的FIRST函数和LAST函数,如果要引用第一个数据,可以用FIRST函数: