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丨需求圈)