数据分析经常要按照时间维度分析,比如常见的同环比,所以要用到时间相关的函数处理时间。时间智能函数需要明确三个点:
→参照依据:点,还是段
→位移量是多少:一天还是一个月
→返回区间:返回新的时间点还是时间段的汇总值
时间智能函数每一个细节逻辑都不一样,使用前需要测试,才知道运算逻辑和怎么使用。以MTD函数为例,使用时间筛选器,测试方法如下:
MTD函数:TOTALMTD(<expression>,<dates>[,<filter>]),返回一个标量值,该值表示为当月至今中的日期计算的 expression,在 dates 中给出日期。
经测试,可以参照点,参照时间点时,位移量是到所选时间点所在月份的第一天,返回区间是从月初到指定时间点下的汇总值
不可以参照时间段,介于模式下,受区间后点影响不受前点影响
(QTD和YTD一样)
previousMonth函数:PREVIOUSMONTH(<dates>)
经测试,可以参照点,参照时间点时,位移量是到所选时间点所在月份的上一个月,返回区间是上月整个月的汇总值
不可以参照时间段,介于模式下,受区间前点影响不受后点影响
Dataadd函数:DATEADD(<dates>,<number_of_intervals>,<interval>),其中dates是包含日期的列,number_of_intervals是一个整数,指定要从日期中加上或减去的间隔数,(负数就是往前位置,正数是往后位移),interval是日期按其轮换的间隔。间隔值可以是以下值之一:year、quarter、month、day
参数为-1,month为例:
参照点: 往前移一个月,返回上个月对应日期下的值
时间段: 前后点各往前移一个月,新的位置下,前后点构成时间段的汇总值(2.1-2.22 --- 1.1-1.22)
如果选某月最后一天,位移到上月最后一天(2.1-2.28 --- 1.1-1.31)
如果选日期>上月最后一天,返回上月最后一天(3.1-3.29 --- 2.1-2.28)
所以要做环比要用dataadd函数





