今天分享一个不错的案例。
最近同事问我一个问题:如何准确计算以下情景中的季度、半年度、年度数据?具体情景如下:以当前筛选月份为时间点,如果月份小于筛选月份,取用A表对应月份的数据;如果月份大于等于筛选月份,取用B表对应的数据。
其实这种问题,一般会出现在结合展示事实销量数据和预测销量数据的情况。如果您也遇到类似的问题,可以看一下我以下的分享哦。
表A:实际销量表:存放201707-201907的月销量数据
表B:销量预测表:存放201801-202001的月预测数据
如下表数据,当筛选器yearmonth选择某一个月的数据,表中的下面4个value分别的取值逻辑如下:
Past Month Value: 取筛选月份的上一个月的实际销量数据(GMV)
Current Month Value: 取筛选月份的销量预测数据(forcast)
Quater Value: 根据筛选器yearmonth选择的月份得到改月份对应的季度,进而得到该季度对应的3个月份,这3个月份中,如果月份小于等于筛选器yearmonth选择的月份,实际销量数据(GMV);否则,取销量预测数据(forcast)。确认取值后,把这3个月的GMV和forcast数据加起来,得到Quater Value值。
Half Year Value: 取值逻辑跟Quater Value一样。把3个月改成6个月即可。
以上4个value值在业务上的意义:
如果当月是201907月,从下表中的4个value值可以看到:上个月(201906)的实际销售情况、本月(201907)的销售目标情况(预测)、结合实际销售数据和预测数据预测出本季度(201907-201909)/本半年度(201907-201912)的销售情况。

好了,这个案例的基本业务意义跟大家先分享了。那么具体是怎么用power BI来实现的呢,请看下面的具体操作步骤。
第一步:建立以下模型

这个模型的原理是根据筛选器yearmonth选择的月份,找到这个月份对应的quater(季度)和halfyear(半年度),再根据找到quater(季度)和halfyear(半年度)在销量表和预测表中找到quater(季度)和halfyear(半年度)的月份。
大家可以看到这个模型中,有2个实际销量表和2个销量预测表。2个实际销量表的数据是完全一样的,2个销量预测表的数据也是完全一样的。那为什么要建2个完全一样的销量表和预测表呢?
因为计算half year value和quater value的月份数不一样。如果用同一个销量表来计算quater value和half year value,计算出来的half year value值就不对了。具体大家可以在各自实操上去好好感受下哈~
第二步:建立好模型之后,新建4个度量值如下
Past Month Value = CALCULATE(SUM('实际销量表-Q'[GMV]),ALL('dim-calendar'[Yearmonth]),'实际销量表-Q'[Date] = VALUES('dim-month'[past month date]))
Current Month Value = CALCULATE(SUM('实际销量表-Q'[GMV]),'实际销量表-Q'[Date] = VALUES('dim-month'[Date]))
Quater Value = IF(HASONEVALUE('dim-calendar'[YEARMONTH]),CALCULATE(SUM('实际销量表-Q'[GMV]), '实际销量表-Q'[YEARMONTH]<VALUES('dim-month'[YEARMONTH])) +CALCULATE(SUM('销量预测表-Q'[FORCAST]),'销量预测表-Q'[YEARMONTH]>=VALUES('dim-month'[YEARMONTH])))
Half Year Value = IF(HASONEVALUE('dim-month'[YEARMONTH]),CALCULATE(SUM('实际销量表-HF'[GMV]),'实际销量表-HF'[YEARMONTH]<VALUES('dim-month'[YEARMONTH])) +CALCULATE(SUM('销量预测表-HF'[FORCAST]),'销量预测表-HF'[YEARMONTH]>=VALUES('dim-month'[YEARMONTH])))
到了这里,大功告成。就剩下图表展示了。
当然,大家还可以结合同比、环比等指标做进一步的分析。例如:同比(今年的预测值对比去年的实际值)还是挺有意思的。如果大家对这个案例还有一些什么想法,欢迎留言跟我讨论~
好了,今天的分享到这里。如果对这个技能有兴趣的话,可以下载我的模型进行参考哦
链接:https://pan.baidu.com/s/1VK540mgUSAc4D7xVksPWUg
提取码:ui4w
网友评论