首页 > 解决方案 > 如何计算特定级别的 DAX 表达式

问题描述

我需要对各种分组属性执行特定计算,然后在更高级别对这些值进行平均。以下是数据可能看起来的示例:

在此处输入图像描述

公式字段是

1 - ABS(Forecast - Actual)/Actual

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

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

在此处输入图像描述

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

在此处输入图像描述

有人可以帮助我如何完成这样的事情。

标签: powerbidax

解决方案


使用“数据”作为您的表名。

创建度量:

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]
)

结果:

在此处输入图像描述

这个怎么运作:

  1. 计算被分解为多个度量,使代码更清晰、更易于理解;
  2. 最后一个测量方法如下:我们按材料和工厂汇总数据,并计算每组的方差 %。然后 AverageX 遍历这些组并平均它们的方差。

推荐阅读