有时候,我们想要按每日跟踪销量当月的完成进度,可以利用PowerBI中的组合图来达到我们想要的结果:

其中柱状图为MTD,按天进行递增的
一般情况下,指标在日期上的粒度为月,而销量在日期上的粒度为日,所以我们的模型如下:

注意:
1. 在建立模型时,我们将日期拆成了两张不同粒度的表:年月的粒度到月份,年月日的粒度到日
2. 所有表之间的都是单向筛选(如果改为双向的话,下面target的度量将不再适用)
那么,其中的度量值该如何写呢?
第一:我们先写MTD的度量值
salse.YTD =// 这里也可以换成selectedvalue,该变量存储的是当前的日,//即横坐标-日,为了能够使filter能够访问当前日,多说一句:横轴的日也//处于某个迭代函数中var vDay = MAX('年月日'[日])var vResult = CALCULATE([salse],filter(all('年月日'[日]),[日]<=vday))< span="">returnvResult)
第二:Target的度量值,就比较简单了:
Target = CALCULATE(sum('指标'[指标]))
第三:分别将Sales.YTD放入ColumnValues,Target放入LineValues,然后将日拖入Sharedaxis 即可

如果我们将两个日期表之间的关系改为双向,在度量值不变的情况下,那结果会什么样的?

在日期切片器单选的情况下没有什么不一样的,但是如果在切片器多选的情况,就会出现一下这种情况.

在这里不去判断这种情况是否合理,仅仅解释这种现象。
1. 因为2月份并没有29,30,31这三天
2. 因为双向筛选,年月日这张表也会筛选表年月,当到了29,30,31的时候,只能筛选出1月份的指标,所以图中的指标线出现了下降的现象
那么该如何处理这种情况?
在计算Target时,删除 字段:日 对表-年月的筛选就可以了
target = CALCULATE(sum('指标'[指标]), all('日期'[日]))
两个日期表之间开启双向筛选与将日期表合为一张表,通过多对多关系连接指标表,达到的效果是一样的,模型关系如下:

总结:
1. 我们可以柱状折线图来展示MTD销量的完成进度及度量值该如和编写
2. 对比了不同的模型之间度量值的区别
我是BISeven,欢迎交流
文章转载自BISeven,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




