首页 > 解决方案 > DAX - 查找并返回具有最高汇总度量的类别值

问题描述

在以下示例中,

最高运输单位 - 应该是 TotalPS 具有最大值的“ActualArea”。

这是按 - Customer_ID、ProductDesignation、Package_CD、ActualArea 分组的汇总表

在此处输入图像描述

正如您在上面看到的,我无法产生预期的结果。HighestShippingUnit 度量的 DAX 如下。我似乎无法弄清楚我做错了什么。

HighestShippingUnit =
VAR tab =
    SUMMARIZE (
        ALLEXCEPT (
            DeviationReport,
            DeviationReport[CUSTOMER_ID],
            DeviationReport[ProductDesignation],
            DeviationReport[PACKAGE_CD]
        ),
        DeviationReport[ActualArea],
        "GroupTotalPS", SUM ( DeviationReport[TotalPS] )
    )
VAR maxps =
    MAXX ( tab, [GroupTotalPS] )
RETURN
    CALCULATE (
        MAXX ( FILTER ( tab, [GroupTotalPS] = maxps ), MAX ( [ActualArea] ) )
    )

DeviationReport 是我在数据集中的表的名称。

请你能告诉我我在 DAX 中做错了什么或者如何以更有效的方式来做吗?

标签: powerbidaxpowerbi-desktopmeasure

解决方案


实际上,您的尝试非常接近。

如果您将最后一行从

CALCULATE (
        MAXX ( FILTER ( tab, [GroupTotalPS] = maxps ), MAX ( [ActualArea] ) )
    )

MAXX ( FILTER ( tab, [GroupTotalPS] = maxps ), [ActualArea] ) 

那么它应该可以工作。

原因是 usingCALCULATE重新引入了ActualArea您删除的过滤器上下文,ALLEXCEPT因此您只能看到当前的ActualArea.


推荐阅读