函数周期表丨时间智能丨值丨DATEADD

2021-08-30 10:20:33 浏览数 (1)

DATEADD函数

DATEADD函数属于使用频率非常高的基本函数之一。国内各个类型、各个规模的企业,都无法绕开同比环比问题。对于上下文理解很吃力的小伙伴,使用DATEADD函数不失为一种过渡的手段。

语法

代码语言:txt复制
DAX=
DATEADD(<日期列>,<整数>,<粒度>)

参数

日期列:可以是一个具体的日期,可以是一列日期,也可以是一个日期的表达式。

整数:正数向后平移,负数向前,小数四舍五入。

粒度:表示平移的单位。年、季度、月、日。

返回结果

可以是一个具体的值,也可以是一列日期。

例子

模拟数据:

基础代码:

代码语言:txt复制
销售额 =
SUM ( '例子'[销售] )

例子1:

代码语言:txt复制
DATEADD年份粒度 =
CALCULATE ( [销售额], DATEADD ( '例子'[日期], -1, YEAR ) )

由于白茶是随机瞎填的数据,所以有很多空值选项。但是在红框中能看出来DATEADD的年份粒度平移一年的销售情况。

例子2:

代码语言:txt复制
DATEADD季度粒度 =
CALCULATE ( [销售额], DATEADD ( '例子'[日期], -1, QUARTER ) )

结果:

例子3:

代码语言:txt复制
DATEADD月份粒度 =
CALCULATE ( [销售额], DATEADD ( '例子'[日期], -1, MONTH ) )

结果:

例子4:

代码语言:txt复制
DATEADD日期粒度 =
CALCULATE ( [销售额], DATEADD ( '例子'[日期], -1, DAY ) )

结果:

这里第四种结果白茶单独拿出来说一下,可以很明显的看出来DAX表达式写的没有问题,但是结果却是空值,那么问题出在哪呢?

反应快的小伙伴已经明白了,就是白茶模拟的数据只有每月1号的销售数据,向前平移一天压根就没有数据,那结果不是空值是啥?

其实这就是我们实际写DAX使用时间智能函数经常遇到的问题,就是日期"空值"现象,也就是特殊情况无营业。记得有很多小伙伴经常发消息给白茶说,你给我看看这个代码,明明没啥问题,但是为啥结果是错误的?这都是一些对于数据处理的基础问题。

要解决也简单,要考虑实际需求,可以使用TOPN函数,也可以就这样空值显示,要看实际业务需求的。

小伙伴们,GET了么?

白茶会不定期的分享一些函数卡片哦。

(文件在知识星球PowerBI丨需求圈)

这里是白茶,一个PowerBI的初学者。

0 人点赞