一、背景
半累加度量(semi-additive measure),在DAX建模分析的时候经常遇见;应用场景诸如银行存款、库存等。
接下来看一个比较有意思的案例(结果1)。
- Data表是在生产中收集到的一张表,看到每天一共有ABCD四个公司(字段:canpany),每天提交一份数据。
- 如果当天没有提交数据的,则表示按照上一天数据计算,如果黄色区域展示2020/3/3至2020/3/5的D公司,结果都是按照2020/3/3的6计算。
- 同理2020/3/5,ABC三个公司也没有提交,则按照前一天的2020/3/4的ABC计算,如果绿色部分。
二、数据源
数据源:三张表,日期表(Calendar),维度表(Canpany),事实表(Data)
1、日期表
说明:这里的日期表为了方便展示,只有几天数据,生产环境的日期表应该更完善才行。
2、维度表
3、事实表
4、关系视图
三、上DAX
1、度量(Measure)
四、总结
1、很久没有写PP里面的度量了,还是那句话要什么就构造什么上下文。
2、由于事实表中有数据是缺失的,就需要用相应的维度表来补充构造上下文。
3、本案例还是关键函数TOPN,因为日期时间是有序的,这个函数很有用。
4、关于时间智能的计算,最好是准备一张符合业务日期表。
5、注意行列标签的选择(红框)。