Power BI如何计算非日期维度的同比环比?

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

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

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

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

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

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

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

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

上期收入 =

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

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

RETURN

CALCULATE(

[本期收入] ,

FILTER(

ALL( '期间表' ) ,

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

)

)

结果如下:

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

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

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

上期收入=

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

RETURN

CALCULATE(

[本期收入] ,

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

)

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

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

上年同期收入 =

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

RETURN

CALCULATE(

[本期收入] ,

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

)

结果如下:

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

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

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

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

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

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

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

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

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

(0)

相关推荐

  • excel一键生成1000个序号你用多久?我只需1秒!还能批量生成日期

    excel一键生成1000个序号你用多久?我只需1秒!还能批量生成日期

  • 新库存帐龄报表

    本文,我们将在未配置批次情况下,直接从SAP ERP 6.0取数进行库存账龄管理报表开发,而不是通过excel工作表上进行计算.作为前提,此案例将使用FIFO方法进行账龄管理.因此,我们先使用事务代码 ...

  • excel中自动添加序号,自动添加边框,自动添加录入日期

    excel中自动添加序号,自动添加边框,自动添加录入日期

  • Power BI如何计算任意所选期间的环比?

    文/陆文捷 物流供应链优化分析师,Power BI爱好者,知乎:Beethovenist Power BI内置了一系列日期智能函数,覆盖了计算同环比,上年同期,本期至今,期初期末,当期全局数据等高频需 ...

  • Power BI技巧:时间维度动态折叠显示

    文/Beau 数据分析爱好者,擅长PBI数据分析 本文灵感来自于星球球友的一个求助帖,他的诉求是可以在矩阵中对于日期类型的列标题进行动态折叠显示. 何为折叠呢? 简单的说就是当切片器选择日期长度超过一 ...

  • Power BI如何计算任意期间的上一期?

    上上周的文章介绍了非标准日历的计算(Power BI非标准日历的计算思路),虽然是非标准日历,但还是有规律的,每个周期是固定的,可以在日期表中提前做好标记. 实际分析中还有一种情况,任意选定一个时间范 ...

  • 什么是雪花维度?Power BI里如何降低模型复杂度?

    关系模型是Power BI的独特优势,但是,在日常数据分析中,过多的表间关系,会使得数据模型变得非常复杂而且难以分析. 因此,在合适的情况下,借鉴其他BI工具(如SAP BW等)的"并表&q ...

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

    对于按照自然年月日来分析的业务数据,在PowerBI中可以轻松的使用时间智能函数来进行各种时间指标的计算,但如果不是按标准的日历,很多人就开始有点懵,不知道该如何计算了. 比如有的公司的业务月份是从2 ...

  • 认识Power BI中的非活动关系

    经常遇到星友们关于模型的问题:为什么明明已经建立了关系,但是没有筛选作用?仔细一看,原来建立的这个关系显示的是一条虚线. 这篇文章就来介绍一下,为什么有的关系线是虚线?虚线有什么作用,以及如何使用这个 ...

  • Power BI实用技巧:利用DAX隐藏未来日期的计算

    文/陆文捷 物流供应链优化分析师,Power BI爱好者,知乎:Beethovenist Power BI中日期智能函数进行同环比和累加等计算时,如果事实表数据是随时间动态更新,同时数据模型中的日期表 ...

  • 无日期上下文如何计算同比环比?其实很简单

    来自星友的一个问题,如何不借助切片器,在没有任何外部日期上下文的情况下,让报表自动显示本月.上月.上年同期数据,以及对应的同比和环比,这个问题不少人问过,还比较普遍,这篇就来看看如何在PowerBI中 ...

  • 分享一个更实用的Power BI日期表

    那篇文章主要是介绍如何制作日期表,其中的日期表示例相对简单,和日期相关的维度也不够齐全,根据平时分析的需要,以及星友的反馈,这里再分享一个维度更多也更实用的日期表. 本文不再分别用几种方式来制作,免得 ...