如何在特定级别计算DAX表达式

时间:2019-07-11 13:49:16

标签: powerbi dax

我需要在各种分组的属性上执行特定的计算,然后在更高级别上平均这些值。这是一个数据看起来像的例子:

enter image description here

“公式”字段为

1 - ABS(Forecast - Actual)/Actual

您可以在图片中看到,如果我要以最低级别进行此计算,然后在Power BI中我只想删除“公式的平均值”字段,则可以看到结果为2%。这不是我想要的号码。

现在,如果我尝试以不同的方式进行操作,然后对所有预测和实际数字求和,并针对这些数字执行相同的公式,这也不是我想要的。我最终得到这样的东西

enter image description here

我真正想做的是在MaterialNumber / Plant级别执行该公式,然后获得这些数字的平均值。所以看起来像这样:

enter image description here

有人可以帮我完成这样的事情吗?

1 个答案:

答案 0 :(得分:0)

使用“数据”作为表名。

创建度量:

Total Forecast = SUM(Data[Forecast])

另一种措施:

Total Actual =SUM(Data[Actual])

第三项措施:

Variance = ABS([Total Forecast] - [Total Actual])

第四招:

Variance % = 1 - DIVIDE([Variance],[Total Actual])

最后:

Average Variance % =
AVERAGEX(
   SUMMARIZE(
       Data, 
       Data[MaterialNumber],
       Data[Plant],
      "Variance Percent", [Variance %]),
[Variance Percent]
)

结果:

enter image description here

工作原理:

  1. 计算被分解为多种措施,以使代码更简洁,更易于理解;
  2. 最后一个度量的工作方式如下:我们按材料和工厂汇总数据,并计算每组的差异百分比。然后,AverageX对这些组进行迭代并平均其方差。