减一天 日期函数_Power BI如何计算非日期维度的同比环比?

对于自然日期维度的业务数据,在PowerBI中可以轻松的使用时间智能函数来进行各种时间指标的计算(各种时间指标的度量值,让你一次看个够),但如果不是按标准的日历,甚至都没有日期维度,该怎么计算呢?

比如下面这个业务数据,每个订单时间并不是按日期来区分的,而是按期间来划分,一年划分为6个期间,分别为P1、P2……

25a78e2c3defddb366079670a1111efd.png

上面的数据连个日期维度都没有,如何计算每一期的同比和环比呢?

其实计算逻辑与日期维度并没有什么不同,日期计算需要有个日期表,非日期的期间计算,同样也需要制作一个期间维度表。

b81779a4331d58d79fe6eeeb1cbc4405.png

期间维度表与订单表建立关系:

2c14370772f3ec72311fa379ee7b74a7.png

然后根据计算的需要建立几个度量值就可以了。

本期收入 = SUM( '订单表'[销售额] )

上期收入,就是年度相同,期间编号减1的期间的数据,按照这个逻辑写度量值如下:

上期收入 =

VAR year_ = SELECTEDVALUE( '期间表'[年度] )

VAR period_  =SELECTEDVALUE( '期间表'[期间编号] )

RETURN

CALCULATE(

    [本期收入] ,

    FILTER(

        ALL( '期间表' ) ,

        '期间表'[年度] = year_ && '期间表'[期间编号] = period_-1

    )

)

结果如下:

c60310a5e25b533547fbd6f5c74f70e2.png

上图中的结果中,大部分的上期收入没有问题,但是2018年第1期的收入为空,这是因为按照上面的逻辑,第1期的编号减1的期间是不存在的,所以导致这样的结果。

解决这个问题,可以判断是否为第一期来修正计算的逻辑,不过更简单的办法是,在期间表添加一个连续的期间序号维度,

513b1a06c59afd3a44852901724d5895.png

有了这个序号,不用考虑年度,每一期的上期,就是期间序号减1的期间,修正度量值如下:

上期收入=

VAR period_  =SELECTEDVALUE( '期间表'[期间序号] )

RETURN

CALCULATE(

    [本期收入] ,

    FILTER( ALL( '期间表' ) , '期间表'[期间序号] = period_-1 )

)

这个度量值看起来简单多了,并且计算结果也是我们需要的:

073aa548ff3e04a1b68719dc1d828a06.png

同样的逻辑,计算上年同期的数据,就是期间序号减去6的期间,度量值如下:

上年同期收入 =

VAR period_  =SELECTEDVALUE( '期间表'[期间序号] )

RETURN

CALCULATE(

    [本期收入] ,

    FILTER( ALL( '期间表' ) , '期间表'[期间序号] = period_-6 )

)

结果如下:

616c745e574e2a0d46957d4bf1fac0ef.png

有了上期和上年同期的数据,计算同比和环比就很简单了:

环比 = DIVIDE( [本期收入]-[上期收入] , [上期收入] )

同比 = DIVIDE( [本期收入]-[上年同期收入] , [上年同期收入] )

e0ac4ffeb85107760fde72af8c097925.png

这样就完成了同比和环比的指标计算。

这篇文章介绍的是一个普遍意义上的时间指标计算思路,无论是可以利用时间智能函数的月度、季度同比环比,还是没有时间智能函数的周、旬等维度的同比环比,都可以按这个思路轻松实现。

如果彻底理解了这种算逻辑,并掌握了DAX表达思路,再碰到各种日历的指标计算,都可以迎刃而解。

之前写过的周分析以及非标准日历,也是同样的计算逻辑:

学会了这个思路,你也可以轻松进行周分析!

Power BI非标准日历的计算思路

-精彩推荐-

fb5360376c443faf520fc9ba4b3091d5.png

42df4725478752c17b27dde0194eb889.png f3a038ed37bda19aad2dd10eb85c7fa4.png 如果你刚开始学习Power BI,可在微信公众号后台回复"PowerBI",获取《七天入门PowerBI》电子书,轻松上手。 成为PowerBI星球会员 ,获取更多学习资源 b6f01921a088fee77ab5ddfeebb93662.png ↑ 扫码加入,与2k+ 学习者一起成长
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值