上周介绍了一个基础的分析案例(Power BI数据分析入门案例:目标实际对比),这里我们再以费用分摊的案例来帮你进一步理解PowerBI数据分析的思路。 假设有两张表,一个是每日销售表,一个是每月发生的费用,模拟数据如下: 需要将每月的费用按当月销售额的占比,分摊给每个产品、或者分摊到业务员/部门,应该怎么做呢?其中业务员和部门是层级关系。 同样按照上篇文章的思路,按下面三个步骤进行。 1、根据分析目的完善维度表 由于要按照各个维度来分摊,所以先根据现有的表来生成维度表。 (1)产品维度表
(2)业务员维度表 由于业务员和部门是层级关系,可以用SUMMARIZE一次性从销售表中提取两个字段:
这样就提取除了全部的业务员以及所属的部门。 (3)日期维度表 关于日期表不再赘述,你可以参考这两篇文章自行创建: 2、建立数据模型 通过上面的准备工作,现在有5张表,原有的销售表、费用表,以及新建的产品表、业务员表和日期表。 这5张表可以这样建立关系: 三个维度表根据需要,分别与不同的事实表建立一对多的单向关系。 3、建立度量值并展现分析结果 有了上面的模型,下面就可以写度量值来计算分摊金额。 为了下面度量值更简洁的书写,先写两个基础度量值:
为了得到分摊额,首先需要计算出分摊比例,度量值可以这样写:
然后分摊比例乘以当月的费用合计,就是应分摊的费用额:
用矩阵展示如下,将费用分摊到每个产品: 如果想将费用分摊到业务员和部门,同样是这些度量值,只需要调整上下文,将产品换成业务员就可以了: 这样就实现了任一维度的费用分摊,并没有用到复杂的DAX公式。 通过这个例子,不仅是学习如何解决分摊问题,还可以进一步的理解度量值的逻辑,它是一个动态的值,通过上下文的切换动态返回当前上下的结果,当然也不要忘了,度量值背后的数据模型,才是数据分析的灵魂。 |
|
来自: 万里潮涌 > 《finebi分析》