上周介绍了一个基础的分析案例(Power BI数据分析入门案例:目标实际对比),这里我们再以费用分摊的案例来帮你进一步理解PowerBI数据分析的思路。
假设有两张表,一个是每日销售表,一个是每月发生的费用,模拟数据如下:
需要将每月的费用按当月销售额的占比,分摊给每个产品、或者分摊到业务员/部门,应该怎么做呢?其中业务员和部门是层级关系。
同样按照上篇文章的思路,按下面三个步骤进行。
1、根据分析目的完善维度表
由于要按照各个维度来分摊,所以先根据现有的表来生成维度表。
(1)产品维度表
产品表 = VALUES('销售表'[产品名称])
(2)业务员维度表
由于业务员和部门是层级关系,可以用SUMMARIZE一次性从销售表中提取两个字段:
业务员表 =
SUMMARIZE(
'销售表',
'销售表'[销售部门],
'销售表'[业务员]
)
这样就提取除了全部的业务员以及所属的部门。
(3)日期维度表
关于日期表不再赘述,你可以参考这两篇文章自行创建:
玩PowerBI必备的日期表制作方式汇总
分享一个更实用的Power BI日期表
2、建立数据模型
通过上面的准备工作,现在有5张表,原有的销售表、费用表,以及新建的产品表、业务员表和日期表。
这5张表可以这样建立关系:
三个维度表根据需要,分别与不同的事实表建立一对多的单向关系。
3、建立度量值并展现分析结果
有了上面的模型,下面就可以写度量值来计算分摊金额。
为了下面度量值更简洁的书写,先写两个基础度量值:
销售额合计 = SUM('销售表'[销售额])
费用合计 = SUM('费用表'[费用额])
为了得到分摊额,首先需要计算出分摊比例,度量值可以这样写:
分摊比例 =
DIVIDE(
[销售额合计],
CALCULATE([销售额合计],ALLEXCEPT('销售表','日期表'[年度月份]))
)
分母只保留年度月份的筛选,是为了计算出每月的销售额合计,其他上下文的销售额除以该月的合计销售额,就是分摊比例。
然后分摊比例乘以当月的费用合计,就是应分摊的费用额:
分摊金额 = [费用合计]*[分摊比例]
用矩阵展示如下,将费用分摊到每个产品:
如果想将费用分摊到业务员和部门,同样是这些度量值,只需要调整上下文,将产品换成业务员就可以了:
这样就实现了任一维度的费用分摊,并没有用到复杂的DAX公式。
通过这个例子,不仅是学习如何解决分摊问题,还可以进一步的理解度量值的逻辑,它是一个动态的值,通过上下文的切换动态返回当前上下的结果,当然也不要忘了,度量值背后的数据模型,才是数据分析的灵魂。
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站不拥有所有权,不承担相关法律责任。如发现有侵权/违规的内容, 联系QQ15101117,本站将立刻清除。