需要您的帮助来解决有关DAX Power BI的问题。
因此,我试图使用Power BI可视化每个有员工参与的项目的总成本。但是一个员工的成本可以按每个项目的百分比分摊到某个项目。
目标是计算每位员工的总成本,然后按百分比将其分为多个项目。
这是Excel数据。 所以我有3张桌子费用,主要用户和付款分配。
-费用
-主用户
付款分配
这是预期的结果。
请帮助我解决我的问题,非常感谢!
答案 0 :(得分:0)
首先,您需要稍微更改COST表:
我将“ ID”替换为“ Employee Number”,因为我们需要COST和ALLOCATION表具有相同的Employee密钥。我忽略了“产品”列,因为它与问题无关。
一旦COST表具有与ALLOCATION表相同的员工密钥,就可以将所有表连接到以下数据模型:
表“用户”通过“员工编号”连接到表“成本”和“分配”。请注意,“用户”和“分配”之间的连接是双向的。要将连接从单向更改为双向,请双击连接线,然后将过滤器方向更改为BOTH。现在您可以编写DAX度量了。
措施1:
Total Cost = SUM(COST[COST])
此度量仅将表“ COST”中的成本汇总。
措施2:
Allocated % = SUM(Allocation[PERCENTAGE])
此度量仅汇总表“分配”中的百分比。
措施3:
Allocated Cost = SUMX('User', [Total Cost] * [Allocated %])
如果将Projects放到矩阵可视中并添加此度量,您将得到以下结果:
附加说明:
有经验的设计人员避免在模型中使用双向关系(出于充分的理由)。要使所有关系保持单向,请修改最后一个度量,如下所示:
Allocated Cost =
CALCULATE(
SUMX('User', [Total Cost] * [Allocated %]),
CROSSFILTER(User[EMPLOYEE NUMBER], Allocation[EMPLOYEE NUMBER], BOTH))
CROSSFILTER与双向关系完全相同,只是以编程方式进行,并且没有不良副作用。这种方法也可以在不支持双向连接的Excel Power Pivot中使用。