博客:www.jiaopengzi.com
一、背景
最近刚好在做一个简单同比预测的模型,预测方法很简单,就是累计同比预测,把MTD展示出来。
[video width=“1920” height=“1040” mp4=“https://jiaopengzi.com/wp-content/uploads/2020/08/142_9.mp4”][/video]
demo展示链接:https://jiaopengzi.com/go/142/
二、数据源
1、日期表:Calendar
2、事实表1:Data(基础数据)
3、事实表2:Target(目标)
4、关系视图
三、上DAX
2、度量对应图示中元素
4、基础度量:M001_AC
M001_AC = SUM('Data'[value])
5、关键度量:M002_Forecast,同比预测。
M002_Forecast =
VAR DAY_MAX =
CALCULATETABLE ( LASTDATE ( 'Data'[dates] ), ALL ( 'Calendar' ) )
VAR DAY_MIN =
CALCULATETABLE ( STARTOFYEAR ( 'Calendar'[Dates] ), ALLSELECTED ( 'Calendar' ) )
VAR DATE_AC =
DATESBETWEEN ( 'Calendar'[Dates], DAY_MIN, DAY_MAX )
VAR DATE_PRE =
DATESBETWEEN (
'Calendar'[Dates],
DATEADD ( DAY_MIN, -1, YEAR ),
DATEADD ( DAY_MAX, -1, YEAR )
)
VAR MTD_AC =
CALCULATE ( 'Measure'[M001_AC], DATE_AC )
VAR MTD_PRE =
CALCULATE ( 'Measure'[M001_AC], DATE_PRE )
VAR YOY =
DIVIDE ( MTD_AC, MTD_PRE )
VAR DAY_AC =
MAX ( 'Calendar'[Dates] )
VAR PRE =
CALCULATE ( 'Measure'[M001_AC], DATEADD ( 'Calendar'[Dates], -1, YEAR ) )
RETURN
IF ( DAY_AC <= DAY_MAX, BLANK (), PRE * YOY )
6、M005_MTD_Forecast:同比预测月累计(MTD)折线显示度量。
7、静态结果截图
四、总结
1、业务模型非常简单,采用累计同比预测法。
2、主要DAX驱动可视化的应用,对每个元素对应的DAX要充分理解
3、注意观察ALL和ALLSELECTED函数的使用位置,
4、日期的判定,注意观察’Calendar’[Dates]与 ‘Data’[dates]使用位置。
by焦棚子