计算组在矩阵中应用


这是前段时间一个客户的需求,客户那边负责人想要在Power BI中表格里日期倒序显示最近12个月的数据,那边的工程师说这个Power BI做不了。。。
先来分解下这个需求,1最近12个月的数据;2日期倒序
最近12个月的数据,这个sqlbi早就给出了标准答案,Show previous 6 months of data from single slicer selection – SQLBI — 显示来自单个切片器选择的前 6 个月的数据 – SQLBI
我们需要先复制一张日期表,并且和原有日期表为虚拟关系
image.png
打开Tabular Editor新建计算组
image.png
这时就可以实现矩阵中显示最近12个月的数据了,只是日期是升序的,并不是降序排列的。
image.png
接下来就是要想办法将日期进行降序排列,先来试下直接修改矩阵的排序 ,会发现根本不支持日期进行排序。
image.png
为了不影响原始的日期排序,这里新建了两列,

年月序号 =
FORMAT( 'Date'[Date], "\YYY-MM" )
年月排序 =
RANKX( ALL( 'Date'), 'Date'[Calendar Year Month Number],,DESC,Dense )

然后设置年月序号的排列依据为年月排序列
image.png
现在,将矩阵中的日期换成年月序号
image.png
如果再进一步要求,矩阵中还需要显示MAT, PYMAT和YOY%呢?比如像下面这样
image.png
因为MAT, PYMAT和YOY%这三个指标并非日期,再加上需要显示真实的日期,而不是当前日期,前一个月,前两个月这样的,所以计算表自定义表头肯定是不行的,继续求助于计算组,新建计算组,依次添加MAT, PYMAT和YOY%三个计算项
image.png
这里发现一个小bug,就是在我尝试对YOY%进行字符格式时出现的,网上很多查找Emoji表情的网站,这里就不做任何推荐了。

VAR Cur =
    SELECTEDMEASURE ()
VAR Result = 
    IF(
        Cur  < 0,
        """" & "😭 "  & Format(cur, "0.00%") ,
        "0.00%"
    )   
RETURN
Result

image.png
数据前面会多一个负号,暂时还未找到解决办法
image.png


类似文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注