使用过滤器查找第二个最小值的 DAX 公式

DAX formula to find second minimum with filters

我刚才问过一个类似的问题,我在这个页面上收到了答案:

我的问题有点变化,我找不到解决方法。

我有一个 table,其中包含城市、费用类型和所述费用的价值。 我想创建一个计算量度,以找到给定费用在不同城市之间的第二个最小值。 可以使用切片器过滤掉城市,第 2 分钟需要根据此更改进行调整。 目标是让图表以行的形式显示费用和城市,以值的形式显示 value/2ndmin。 该图表将在左侧显示所有城市的第一个费用和这些城市的第二个最小值,第二个费用与所有城市和这些城市的第二个最小值等。图表应该能够显示许多费用,第二个最小值应该调整到这些中的任何一个。

另一个 post 中提供了一些代码,这对我的第一个请求来说工作得很好,但我无法调整它以使其适用于此。

我在 Excel 上通过 power pivot 工作,它不允许像 RemoveFilters 这样的所有功能,但我发现“全部”似乎与另一个 post 中描述的目的相同.

有人可以帮忙吗? 非常感谢!

这是对上一个答案进行修改以忽略类别并使用切片器选择的度量

SecondMin = 
VAR CurrentExpense =
    SELECTEDVALUE ( Costs[Expense] )
RETURN
    IF (
        NOT ISBLANK ( CurrentExpense ),
        VAR CostsSelected =
            FILTER ( ALLSELECTED ( Costs ), Costs[Expense] = CurrentExpense )
        VAR MinValue =
            MINX ( CostsSelected, Costs[Value] )
        VAR Min2Value =
            MINX ( FILTER ( CostsSelected, Costs[Value] > MinValue ), Costs[Value] )
        VAR Result =
            IF (
                COUNTROWS ( FILTER ( CostsSelected, Costs[Value] = MinValue ) ) > 1,
                MinValue,
                Min2Value
            )
        RETURN
            IF ( NOT ISEMPTY (Costs), Result + 0 )
    )

结果 table 自动适应切片器