如何使用DAX Power BI计算每个变量的百分比值

问题描述 投票:1回答:1

需要你的帮助来解决我关于DAX Power BI的问题。

因此,我正在尝试使用Power BI可视化每个拥有员工的项目的总成本。但是,每个项目的百分比可以将一个员工的成本分摊给某个项目。

目标是计算每个员工的总成本,然后按百分比将其划分为多个项目。

这是excel数据。所以我有3张桌子。成本,主用户和付款分配。

-成本

COST

-MASTER USER

MASTER

- 支付分配

ALLOCATION

这是预期的结果。

enter image description here

请帮我解决我的问题,非常感谢你!

powerbi dax percentage measure
1个回答
0
投票

首先,您需要稍微更改COST表:

enter image description here

我将“ID”替换为“员工编号”,因为我们需要COST和ALLOCATION表来拥有相同的Employee密钥。我忽略了“产品”列,因为它与问题无关。

一旦COST表与ALLOCATION表具有相同的员工密钥,您就可以将所有表连接到以下数据模型:

enter image description here

表“用户”通过“员工编号”连接到表“成本”和“分配”。请注意,“用户”和“分配”之间的连接是双向的。要将连接从单一更改为双向,请双击连接线并将过滤器方向更改为BOTH。现在您已准备好编写DAX指标。

措施1:

Total Cost = SUM(COST[COST])

该措施简单地总结了“COST”表中的成本。

措施2:

Allocated % = SUM(Allocation[PERCENTAGE])

该度量简单地总结表“分配”中的百分比。

措施3:

Allocated Cost = SUMX('User', [Total Cost] * [Allocated %])

如果将项目拖放到矩阵视觉中并添加此度量,您将获得以下结果:

enter image description here

附加说明:

有经验的设计师避免在他们的模型中使用双向关系(出于好的理由)。要保持所有关系的单向性,请修改最后一个度量,如下所示:

Allocated Cost = 
CALCULATE(
  SUMX('User', [Total Cost] * [Allocated %]), 
  CROSSFILTER(User[EMPLOYEE NUMBER], Allocation[EMPLOYEE NUMBER], BOTH))

CROSSFILTER与双向关系完全相同,只是以编程方式,没有不必要的副作用。这种方法也适用于Excel Power Pivot,它不支持双向连接。

© www.soinside.com 2019 - 2024. All rights reserved.