Power BI对一列进行汇总而不是按角色进行分组

时间:2019-08-09 14:53:36

标签: powerbi dax powerbi-desktop

我有三个表:“实际”,“估计”和“主要项目”列表。

如果我通过选择“实际值”或“估计值”的“角色和工时”来创建条形图(群集,堆叠或100%堆叠),则可以正常工作。它显示了按角色划分的项目工作时间。

但是,如果我选择“实际值”和“估算值”的“角色和时数”,则会中断。

我需要一个图表,该图表按项目显示(我正在使用切片器进行选择)按角色的估算值以及相应的实际值。因此,PM估算值应为一个条形,其旁边应为PM实际值。

但是发生了什么事,我得到了一个项目的PM估算值,以及该项目的所有实际时间(PM,AN和RN)的总和。

我还遇到一个问题,我无法在“估计”和“实际”之间建立联系。我必须使用“主项目”列表来充当两者之间的过渡。如果我尝试使用项目作为关系在“实际值”和“估计值”之间建立关系,它会说:“您不能在这两列之间创建关系,因为其中一列必须具有唯一值。”

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

估算

Estimates

事实

Actuals

主项目列表

Master

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

Relationships

实际图表

ActualsChart

估算图

EstimatesChart

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

EstActChart

1 个答案:

答案 0 :(得分:2)

这里的问题是您在图表x轴上使用一个或另一个Role列,而表格没有办法将该列从一个表格交叉过滤到另一个表格。

想到了两种可能的解决方案。一个简单的方法是创建一个计算表

Roles = VALUES ( Estimates[Role] )

,然后在该表中将模型中的EstimatesActuals设置为一对多关系。然后,您可以在x轴上使用Roles[Role]列,它应该正确过滤两个表。

另一种方法是编写一种显式过滤角色的措施。如果您在x轴上使用Estimate[Role],则Actuals表是需要过滤的表,您可以编写

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

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