假设有10个计算字段都要进行同比、环比和任意月份的对比,那么常规做法就是将这10个度量值分别再写10×3=30个度量值。
当然,计算组可以是一个简化的选择,尤其是最近一次更新,powerbi支持原生书写计算组带来了很大的便捷。不过,计算组目前仅仅适用于矩阵表,而且只能一次性选择全部。
即以下的形态:
想要只选取其中的某个字段进行进行分析或是卡片图、饼图展示,计算组就无法实现了。
我们想要的恐怕是这样的:
想看同比、环比的时候直接点击选择,想看特定月份对比的可以选择“任意月份对比”后,在对比月份那里选择月份。
想要实现这样的切片器效果并不难。
对于同环比选择切片器我们可以创建一个单独的表:
至于度量值的写法,我们可以从简单的入手,同比:
SALES LY= CALCULATE([sales],DATEADD('日期表'[Date],-1,YEAR))
也可以写作:
SALES LM= CALCULATE([sales],DATEADD('日期表'[Date],-12,MONTH))
环比:
SALES LM= CALCULATE([sales],DATEADD('日期表'[Date],-1,MONTH))
对于任意月份,我们可以设置两个日期表,年度月份带有编号,再作差得到月份差额:
月份差额 =
SWITCH(
SELECTEDVALUE('同环比选择'[同环比选择]),
"同比",-12,
"环比",-1,
"任意月份对比",
var a=max('日期表'[年月编号])
var b=max('日期表2'[年月编号])
return b-a
)
对比以上代码我们可以发现,无论是同比还是环比,实际上都是将月份向前推1个月或则12个月,任意月份就向前推月份差额个月即可。
所以将以上度量值合并:
SALES C= CALCULATE([sales],DATEADD('日期表'[Date],月份差额,MONTH))
至于切片器的显示,正常情况下,一个切片器的变化不会引起另一个切片器值的变化,因此这里使用了一个小把戏。
由于“同环比选择”切片器在选择同比或环比时,并不需要调整“对比月份”切片器,只有选择“任意月份对比”时才需要调整,所以才能以假乱真。
本文分享自 PowerBI生命管理大师学谦 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!