一些知识
日历表一定要通过日期格式的字段与事实表进行关联,否则时间智能函数可能无法准确计算。
实例
//自动创建日期表// date = calendarauto()
//默认是从事实表中最小年份和最大年份的1月到12月,如果需要指定不同的财年月份,可以给这个函数添加参数
//calendarauto(6)
//代表以6月份作为财年结束,生成的日期表会以7月1日开始
//另外注意日期表的日期必须连续,并且年度需要包含完整的财年天数
//取出月份序号 新建列 // month_no = month('date'[date])
//取出月份英文名 新建列 // month_desc = format('date'[date],"mmm")
按照月份序号对数据进行排序,结果如图所示
度量值 销售额 = sum(‘订单表’[销售额])
度量值 去年同期销售额 = calculate([销售额],dateadd('date'[date],-1,year))
//Dateadd能够根据当前上下文,根据所给参数向前或者向后加减一个时间单位
度量值 同比增长 yoy% =if(
[去年同期销售额]>0,
divide([销售额]-[去年同期销售额],[去年同期销售额]),
if(and([销售额]>0,[去年同期销售额]=0),1,balnk(),
)
度量值 上月销售额 = calculate(
[销售额],
dateadd('date'[date],-1,month)
)
度量值 月环比 = if(
[上月销售额]>0,
divide([销售额]-[上月销售额],[上月销售额]),
if(and([销售额]>0,[上月销售额]=0),1,balnk(),
)
dateadd函数生成日期
DATEADD(<dates>,<number_of_intervals>,<interval>)