需要你的帮助来解决我关于DAX Power BI的问题。
因此,我正在尝试使用Power BI可视化每个拥有员工的项目的总成本。但是,每个项目的百分比可以将一个员工的成本分摊给某个项目。
目标是计算每个员工的总成本,然后按百分比将其划分为多个项目。
这是excel数据。所以我有3张桌子。成本,主用户和付款分配。
-成本
-MASTER USER
- 支付分配
这是预期的结果。
请帮我解决我的问题,非常感谢你!
首先,您需要稍微更改COST表:
我将“ID”替换为“员工编号”,因为我们需要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 %])
如果将项目拖放到矩阵视觉中并添加此度量,您将获得以下结果:
附加说明:
有经验的设计师避免在他们的模型中使用双向关系(出于好的理由)。要保持所有关系的单向性,请修改最后一个度量,如下所示:
Allocated Cost =
CALCULATE(
SUMX('User', [Total Cost] * [Allocated %]),
CROSSFILTER(User[EMPLOYEE NUMBER], Allocation[EMPLOYEE NUMBER], BOTH))
CROSSFILTER与双向关系完全相同,只是以编程方式,没有不必要的副作用。这种方法也适用于Excel Power Pivot,它不支持双向连接。