在Power Pivot或Power BI数据模型中要打算同比环比是个很随意马虎的事情,由于有韶光智能函数和日期表,不须要太多的知识储备:
个中最主要的一个韶光智能函数DATEADD函数,须要负责理解一下,DATEADD函数一共有三个参数:
学会这个DATEADD函数,就相称于学会了一下几个函数:

这几个函数,NEXT开头的和PREVIOUS开头的函数都是只有一个参数的函数,他们实现的功能只是DATEADD函数功能的一部分,还有SAMEPERIODLASTYEAR函数也是一样的,都很大略,唯一繁芜的函数是PARALLELPERIOD,三个参数,和DATEADD函数用法一样,便是返回的值有些不同,大家有兴趣的可以去仔细研究一下。
我们来看例子:仿照了两年的数据,建立了对应的日期表,标记日期表并建立关系。
聚合建立第一个度量值[发卖金额],最大略的聚合,可以通过不同的筛选得到不同的结果,这个聚合,可以是月销、季度销、年度销。
发卖金额 = sum('发卖记录'[金额])
DATEADD上月发卖:
上月 = CALCULATE([发卖金额],DATEADD('日历'[Date],-1,MONTH))
上季度发卖:
上季度 = CALCULATE([发卖金额],DATEADD('日历'[Date],-1,QUARTER))
上年发卖:
上年 = CALCULATE([发卖金额],DATEADD('日历'[Date],-1,YEAR))
这三个度量值有着相同的构造:CALAULATE+DATEADD
而且DATEADD函数的参数,只有末了一个参数在变革,前两个参数是相同的。
环比:月度环比,IF函数与BLANK函数是为了打消没有上月数据的情形,DIVIDE函数便是除法函数:
月环比 = if([上月]=BLANK(),BLANK(),DIVIDE([发卖金额],[上月])-1)
季度环比与月度环比基本相同:
季环比 = IF([上季度]=BLANK(),BLANK(),DIVIDE([发卖金额],[上季度])-1)
同比:同比与环比的写法同等,便是韶光范围是年与年的比较:
同比 = if([上年]=BLANK(),BLANK(),DIVIDE([发卖金额],[上年])-1)
以上的例子是在Power BI中做的演示,以是度量值没有冒号。
更多DAX函数知识请订阅DAX函数专栏: