在MAXX计算中使用SUMMARIZE函数

时间:2019-05-28 11:01:15

标签: powerbi dax powerbi-desktop

enter image description here

我正尝试通过“延迟原因”列汇总以下值(NHS,社会护理和B两者),以便我可以找到价值最高的原因(从上面列出的3个组合值中)。

我尝试使用summarize创建一个表格,其中仅包含延迟原因,NHS,社会关怀和Both B列。通过这样做,我希望我可以创建一个名为合计的列,在此汇总表中将NHS,“社会关怀”和“两个B列”加在一起,从而为每个延迟原因提供总计值。

尽管当我尝试在合计列中运行maxx函数时,似乎给了我错误的值。

我尝试用独特的功能包装表格,以便将汇总中的所有列汇总在一起,但这也无济于事。

Max Delays =
MAXX (
    SUMMARIZE (
        csv,
        csv[Reason For Delay],
        csv[NHS],
        csv[Social Care],
        csv[Both B],
        "totals", CALCULATE ( SUM ( csv[NHS] ) + SUM ( csv[Both B] ) + SUM ( csv[Social Care] ) )
    ),
    [totals]
)

上图中带有total列的较小的表(应该代表汇总表)显示了我希望进行最大计算的值,我希望最大值为277。

我得到的最大值是182。这是下面未汇总表中的最大值,在该表中,我有很多重复的延迟列原因,而182是最大值。

如果可能有帮助,我已经上传了我正在处理的pbix文件的示例; https://www.zeta-uploader.com/en/1184250523

1 个答案:

答案 0 :(得分:1)

首先,出于总体原因创建一个度量标准:

Total Reasons = SUM(csv[NHS]) + SUM(csv[Both B]) + SUM(csv[Social Care])

第二,出于最大原因创建度量:

Max Reason = MAXX( VALUES(csv[Reason For Delay]), [Total Reasons])

结果:

enter image description here

工作原理:

  • 第一个措施是为了方便。您可以在其他公式中重复使用它,从而使代码更简洁;
  • 在第二种方法中,我们使用VALUES创建了一系列不同原因的列表。然后,MAXX迭代此列表,为每种原因计算总数,然后找到其中的最大值。