2024闰年,PowerBI相关的计算注意事项

您看看需不需要 2024-02-23 02:20:45

2024年是个闰年,2月有29天,在这种情况下,关于上年同期相关计算可能会出问题,这里就将最近星友问到的典型问题介绍一下。

上年同期的日期

返回上年同期的日期,有星友是这么写的度量值:

上年同期 日期 = MAX('日期表'[日期])-365

如果还没有到2月29日,比如今天是2024年2月17日,它可以正常返回2023年2月17日,这是没问题的。

但是如果在2月29日之后,比如2024年3月15日,上述写法返回的结果将不再是2023年3月15日,而是2023年3月16日。

因为闰年是366天,日期减去365是不准确的,那应该怎么做呢?是不是要先判断某个年份是否为闰年,然后确定是减366还是365吗?

这个思路是可以的,但是太麻烦了,其实返回上年同期的日期,还有个更简单的方法,不管一年多少天,直接返回12个月前的相同日期就可以了,这个算法有专门的函数:EDATE

上年同期 日期 = EDATE(MAX('日期表'[日期]),-12)

如果是2024年2月29日,上年2023年,没有2月29日,它将返回2023年2月28日,同样为2月的最后一天。

上年同期的数据

计算上年同期的数据,有星友是这样写的度量值:

销售额 上年同期 =

CALCULATE(

[销售额],

DATEADD('日期表'[日期],-365,DAY)

)

这个逻辑是计算往前推365天的日期的数据,在闰年的情况下,与上面介绍的一样,并不一定是上年同期,更精确的写法是往前推 12个 月:

销售额 上年同期 =

CALCULATE(

[销售额],

DATEADD('日期表'[日期],-12,MONTH)

)

或者往前推 1 年:

销售额 上年同期 =

CALCULATE(

[销售额],

DATEADD('日期表'[日期],-1,YEAR)

)

也可以直接用SAMEPERIODLASTYEAR来计算上年同期,更多关于日期相关 的计算请参考:各种时间指标的度量值,让你一次看个够

在计算上年同期时,不要想当然的按一年365天的逻辑写度量值,而是尽量用时间智能函数/日期函数,用月/季/年的粒度,它们的内部计算逻辑,和天数无关,是否为闰年对结果没有影响。

关于时间智能函数是如何处理闰年的,其实我在4年之前的2020闰年就已经介绍过,还没有看过的星友请仔细看一下这篇文章:

2月29日就要到了,Power BI时间智能函数是如何处理闰年的?

0 阅读:0

您看看需不需要

简介:感谢大家的关注