计算组在矩阵中应用
这是前段时间一个客户的需求,客户那边负责人想要在Power BI中表格里日期倒序显示最近12个月的数据,那边的工程师说这个Power BI做不了。。。
先来分解下这个需求,1最近12个月的数据;2日期倒序
最近12个月的数据,这个sqlbi早就给出了标准答案,Show previous 6 months of data from single slicer selection – SQLBI — 显示来自单个切片器选择的前 6 个月的数据 – SQLBI
我们需要先复制一张日期表,并且和原有日期表为虚拟关系
打开Tabular Editor新建计算组
这时就可以实现矩阵中显示最近12个月的数据了,只是日期是升序的,并不是降序排列的。
接下来就是要想办法将日期进行降序排列,先来试下直接修改矩阵的排序 ,会发现根本不支持日期进行排序。
为了不影响原始的日期排序,这里新建了两列,
年月序号 =
FORMAT( 'Date'[Date], "\YYY-MM" )
年月排序 =
RANKX( ALL( 'Date'), 'Date'[Calendar Year Month Number],,DESC,Dense )
然后设置年月序号的排列依据为年月排序列
现在,将矩阵中的日期换成年月序号
如果再进一步要求,矩阵中还需要显示MAT, PYMAT和YOY%呢?比如像下面这样
因为MAT, PYMAT和YOY%这三个指标并非日期,再加上需要显示真实的日期,而不是当前日期,前一个月,前两个月这样的,所以计算表自定义表头肯定是不行的,继续求助于计算组,新建计算组,依次添加MAT, PYMAT和YOY%三个计算项
这里发现一个小bug,就是在我尝试对YOY%进行字符格式时出现的,网上很多查找Emoji表情的网站,这里就不做任何推荐了。
VAR Cur =
SELECTEDMEASURE ()
VAR Result =
IF(
Cur < 0,
"""" & "😭 " & Format(cur, "0.00%") ,
"0.00%"
)
RETURN
Result
数据前面会多一个负号,暂时还未找到解决办法。