繁体   English   中英

如何使用DAX Power BI按变量百分比计算值

[英]How to calculate value for each variable by their percent using DAX Power BI

需要您的帮助来解决有关DAX Power BI的问题。

因此,我试图使用Power BI可视化每个有员工参与的项目的总成本。 但是一个员工的成本可以由每个项目的百分比分摊到某个项目。

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

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

-成本

成本

-主用户

主

-付款分配

分配

这是预期的结果。

在此处输入图片说明

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

首先,您需要稍微更改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 %])

如果将“项目”放入矩阵可视化文件并添加此度量,则将得到以下结果:

在此处输入图片说明

附加说明:

有经验的设计人员避免在模型中使用双向关系(有充分的理由)。 要使所有关系保持单向,请如下修改最后一个度量:

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

CROSSFILTER与双向关系具有完全相同的功能,只是以编程方式且没有不良副作用。 这种方法也可以在不支持双向连接的Excel Power Pivot中使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM