首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

解决该问题有很多种方法,这里介绍一个相对简单并且容易理解的做法。

为了能方便的定位到不同的月份,在日期表中添加一列连续的年月序号,可以这样写:

年月序号= ( YEAR( [日期] ) - 2018 ) * 12 + MONTH( [日期] )

因为该日期表是从2018年1月1日开始的,所以先减去2018,这样做的结果就是如果是2019,自动在月份上加上12,也就是2019年1月的年月编号是13,往后依次类推。

有了这个年月序号,本月数据的度量值可以这样写:

本月=

VAR

cur_yearmonth=

CALCULATE(

  SELECTEDVALUE('日期表'[年月序号]),

  '日期表'[日期]=TODAY())

RETURN

CALCULATE([收入],'日期表'[年月序号]=cur_yearmonth)

因为没有外部日期上下文,所以在这个度量值内部利用TODAY函数来找出今日所对应的年月编号,然后计算出本月数据。

同理计算上月和上年同期很简单了,逻辑完全一样,只需要调整对应的年月编号就可以了:

上月=

VAR

cur_yearmonth=

CALCULATE(

SELECTEDVALUE('日期表'[年月序号]),

'日期表'[日期]=TODAY())

RETURN

CALCULATE([收入],'日期表'[年月序号]=cur_yearmonth-1)

上年同期=

VAR

cur_yearmonth=

CALCULATE(

SELECTEDVALUE('日期表'[年月序号]),

'日期表'[日期]=TODAY())

RETURN

CALCULATE([收入],'日期表'[年月序号]=cur_yearmonth-12)

利用上述数据计算同比和环比:

环比= DIVIDE([本月]-[上月],[上月])

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

矩阵中显示如下:

这样就轻松实现了无外部日期上下文的计算,如果你想计算上上月,前年同期等,都很方便,只需要在度量值中更改一个数字。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210221A03QEH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券