您的位置 首页 > 天生丽质

【环比和同比是什么意思】无日期上下文的本月至今的同比环比 | PowerBI星球

前面的文章介绍了没有日期上下文的同比环比,但数据是整个月的累计。如何计算本月累计数据和相应的上个月、去年同期对比?

逻辑仍然不利用外部上下文,只使用今天的日期TODAY来组织从本月1日到今天的日期列表,然后执行汇总计算,测量值可以写成:

收入MTD=

CALCULATE(

[收入],

FILTER(

ALL(“日期表”),

日期表'[日期]=EOMONTH(TODAY(),-1) 1

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

)。

)。

这里使用了EOMONTH函数,其用法如下:

EOMONTH是一个日期函数,可返回指定月份移动后月份的最后一天。例如,EOMONTH('2021-3-15 ',-1)将返回2021年2月的最后一天:2021-2-28。

EOMONTH可以返回移动后的月份的最后一天的日期,所以通过这个函数构造出EOMONTH(TODAY(),-1)+1,将返回本月第一天的日期,利用这个逻辑,顺利计算出本月至今的数据。

同样的方式,计算上个月的本月至今,可以这样写:

收入 MTD PM =

CALCULATE(

[收入],

FILTER(

ALL('日期表'),

'日期表'[日期]>=EOMONTH(TODAY(),-2)+1

&&'日期表'[日期]<=EDATE(TODAY(),-1)

)

)

EOMONTH(TODAY(),-2)+1返回上个月的第一天,然后上个月的今日,利用了另外一个日期函数EDATE,EDATE(TODAY(),-1)返回上月的今日。
EDATE的用法如下:

EDATE也是一个日期函数,返回移动指定月份后的对应日期,比如EDATE("2021-3-15",1)将返回"2021-4-15",如果移动后的日期在对应的月份中不存在,晚于当月最后一天,则自动返回该月的最后一天,比如EDATE("2021-3-30",-1),2月是没有30号的,则自动返回为最后一天2021-2-28。

这里用到了两个常用的日期函数,它们功能非常容易理解,只和提供的参数有关,和其他上下文没有关系,也不需要日期表,比时间智能函数的逻辑简单多了,在某些场景下很好用。

当然TODAY本身也是个日期函数。

同理,可以很容易的计算出本月至今的上年同期数据:

收入 MTD PY =

CALCULATE(

[收入],

FILTER(

ALL('日期表'),

'日期表'[日期]>=EOMONTH(TODAY(),-13)+1

&&'日期表'[日期]<=EDATE(TODAY(),-12)

)

)

用矩阵显示如下:

计算上月同期数据时候,还有个小问题是,如果本月的天数比上个月少,比如2021年2月份,2月28号是最后一天,本月至今就是2月整月累计的数据,但上期是1月1号到28号的数据,如果想让1月也显示出整月的累计数,可以加个判断逻辑,这样来写本月至今的上月的度量值:

上面利用了日期函数,很方便了计算出了本月至今和环比、同比的数据,那么能不能利用时间智能函数来完成这些运算呢,也是可以的。

下面看看利用时间智能函数的写法:

收入 MTD1 =

CALCULATE(

[收入],

DATESMTD(

TREATAS({TODAY()},'日期表'[日期]))

)

因为没有外部日期上下文,这里利用了TREATAS将TODAY视同为日期表里的日期,作为DATESMTD的上下文,这样就会返回从月初至今的日期列表,然后执行汇总计算。

TREATAS的第一个参数必须是个表,而日期函数返回一个值,所以在外面套个大括号{ },就可以将值变成表。

同理本月至今的上月以及上年同期,时间智能函数的写法是这样的:

收入 MTD PM1 =

CALCULATE(

[收入],

DATESMTD(

TREATAS({EDATE(TODAY(),-1)},'日期表'[日期]))

)


收入 MTD PY1 =

CALCULATE(

[收入],

DATESMTD(

TREATAS({EDATE(TODAY(),-12)},'日期表'[日期]))

)

其结果和前面的写法完全一样:

这里就灵活运用了日期函数和时间智能函数,实现了无外部上下文的各种计算。

本文用到的这几个度量值,值得你去细细理解了其中的逻辑,将加深你对日期函数和时间智能函数的理解,掌握这个思路以后,以后碰到类似的分析时都可以利用这类函数轻松计算。

更多精彩

我的新书《PowerBI商业数据分析》上市了

利用Power Query,PowerBI轻松展示最近N天

PowerBI财务分析应用:三大财务报表可视化

采悟,「PowerBI星球」创始人,《Power BI商业数据分析》作者

关于作者: admin

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐