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

时间:2021-02-01 22:40:46

标签: powerbi dax powerpivot

不久前我问过一个类似的问题,我在这个页面上得到了答案:DAX formula to find second minimum with extra criteria

我的问题略有变化,我找不到解决方案。

我有一张表格,上面有城市、费用类型和所述费用的价值。 我想创建一个计算度量,以找到给定费用的不同城市之间的第二个最小值。 城市可以用切片器过滤掉,第 2 分钟需要适应这种变化。 目标是有一个图表显示费用和城市作为行和价值/2ndmin 作为价值。 图表将在左侧显示所有城市的第一笔费用和这些城市的第二个最小值,第二个费用与所有城市和这些的第二个最小值等。图表应该能够显示许多费用,第二分钟应该调整为任何这些。

另一篇文章中提供了一些代码,这些代码对我的第一个请求运行良好,但我无法对其进行调整以使其适用于此。

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

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

1 个答案:

答案 0 :(得分:2)

这是上一个答案的度量,重新设计以忽略类别并使用切片器选择

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 with no city selected on the slicer

table with cieties selected on the slicer

相关问题