【帆叶网探索分享关于powerbi怎么计算环比和同比 BI怎么动态计算任意年月日相关的知识】
之前分享了通过切换不同的粒度类型,来动态显示最近的N个粒度期间的数据 PowerBI动态显示最近N期的数据,在这个案例中,用了独立的日期表当作切片器,这个做法也可以进一步优化,改用建立关系的日期粒度表来当作切片器,以便与报表的其他图表交互。
原模型不变,这里将切片器中的字段都改为来自日期粒度表,并写一个度量值:
并用这个度量值当作柱形图的值,未建立的关系的独立日期粒度表当作坐标轴,同样可以实现上篇文章的效果:
此外,最近被星友问到,对于这种动态的粒度,怎么选择不同粒度类型,来正确计算出上年同期以及上期的数据呢?
对于上年同期的数据,相对照较简单,只需要这样写一个度量值就可以了:
收入 上年同期 =
CALCULATE
[收入],
CALCULATETABLE
SAMEPERIODLASTYEAR '日期表'[日期],
TREATAS VALUES '日期粒度表'[日期],'日期表'[日期]
,
ALL '日期粒度表'
这个度量值的逻辑是将当前日期粒度表所筛选的日期范围,视同日期表的日期范围,并利用时间智能函数返回该范围的上年同期的时间段;当然,为了幸免日期粒度表同时筛选,用ALL来忽视掉它。
这样,无论选择任何粒度,都可以轻松计算出上年同期的数据。
计算当前粒度的上期,同样可以使用上面度量值的思路,但是稍微麻烦的一点是,对于不同的粒度,计算上期用到的时间智能函数是不同的,所以还需要先判断当前所选择的粒度类型。
上期的度量值写法如下:
收入 上期 = SWITCH SELECTEDVALUE '日期粒度表'[类型], "年",[收入 上年同期], "季",CALCULATE [收入],CALCULATETABLE DATEADD '日期表'[日期],-1,QUARTER,TREATAS VALUES '日期粒度表'[日期],'日期表'[日期],ALL '日期粒度表', "月",CALCULATE [收入],CALCULATETABLE DATEADD '日期表'[日期],-1,MONTH,TREATAS VALUES '日期粒度表'[日期],'日期表'[日期],ALL '日期粒度表', "日",CALCULATE [收入],CALCULATETABLE DATEADD '日期表'[日期],-1,DAY,TREATAS VALUES '日期粒度表'[日期],'日期表'[日期],ALL '日期粒度表'
当粒度类型为年时,上期就是上年同期,所以直接用上面建的上年同期度量值,当为其他粒度类型,则通过DATEADD函数来相应的计算该粒度的上期的时间段。
用本期、上期以及上年同期这三个度量值做个柱形图,来看看动态效果:
有上期和上年同期的数据以后,再计算任何粒度的同比和环比也就可以很轻松的实现了。
更多精彩内容Power BI分析应用:盈亏平衡分析
Power BI可视化:矩阵中迷你图的妙用
推荐5个有趣的Power BI自定义控件
采悟 解读: PowerBI星球
声明:本文内容仅代表作者个人观点,与本站立场无关。如有内容侵犯您的合法权益,请及时与我们联系,我们将第一时间安排处理。