Power BI 汇总一列而不是按角色拆分

Power BI summing a column instead of breaking it out by role

我有三个表:实际值、估算值和主项目列表。

如果我通过 select 为实际值或估计值设置角色和时间来创建条形图(聚类、堆叠或 100% 堆叠),它可以正常工作。它显示了按角色细分的项目的小时数。

但是如果我 select 实际值和估计值的角色和时间,它就会中断。

我需要一个图表,按项目显示(我正在使用 select 的切片器),按角色的估计值和相应的实际值。所以 PM 估计值应该是一个条形,紧挨着它的应该是 PM 实际值。

但是发生的事情是我得到了项目的 PM 估计值以及该项目的所有(PM、AN 和 RN)实际小时数的总和。

我还遇到了一个问题,我无法在估计值和实际值之间建立关系。我必须使用主项目列表作为中间人。如果我尝试使用项目作为关系来建立实际值和估计值之间的关系,它会说 "You can't create a relationship between these two columns because one of the columns must have unique values."

以下是我的表格示例和结果:

估计

实际值

主项目列表

关系 - 我必须包括主项目列表...我不能简单地在估计值和实际值中的项目列之间建立关系

实际图表

估计图表

这就是当我尝试将估计值和实际值合并到一个图表中时发生的情况。它将按角色分解小时数以获得估算值,但会将所有角色的所有小时数合并为实际值。

这里的问题是您正在为图表的 x 轴使用一个或另一个 Role 列,而 tables 没有办法从一个 table 到另一个

我想到了几个可能的解决方案。更简单的方法是创建一个计算的 table

Roles = VALUES ( Estimates[Role] )

并在模型中设置从 table 到 EstimatesActuals 的一对多关系。然后你可以在 x 轴上使用 Roles[Role] 列,它应该正确地过滤两个 tables。

另一种方法是编写一个明确过滤角色的度量。如果你在 x 轴上使用 Estimate[Role] 那么 Actuals table 是需要过滤的,你可以写

ActualHoursSum =
CALCULATE (
    SUM ( Actuals[ActualHours] ),
    FILTER ( Actuals, Actual[Role] IN VALUES ( Estimates[Role] ) )
)

您也可以根据需要使用 TREATAS function to propagate filters