首页 文章

Power BI - Rankx和过滤器

提问于
浏览
2

我有下面的表,并希望添加计算列 Rank (oldest top-3) ,仅当状态为"O"时才排名 . 请注意,** Rank(最高的前3)**是期望的结果 .

Status  Days open   Rank (oldest top-3)
C       1   
O       1           4
O       2           3
C       3   
C       4   
C       5   
O       6           2
O       7           1
C       8   
C       9

我有下面的代码,但他们不适合我 .

Rank = IF(order[Status] = "C", BLANK(),
          RANKX(FILTER(order, order[Status] = "O"),
                order[Days open], , 1, Dense))

我得到前三名,而不是botom . 此外,使用过滤器,它会过滤掉任何其他数据 . 我试图用ALLSELECTED替换FILTER,但它没有用 .

1 回答

  • 1

    输入

    我创建了一个名为 order 的表,其中包含以下数据:

    Status  Days open
    C       1
    O       1
    O       2
    C       3
    C       4
    C       5
    O       6
    O       7
    C       8
    C       9
    

    代码

    然后我添加了一个带有以下DAX的计算列:

    Rank = 
    IF('order'[Status] = "C", 
        BLANK(),
        RANKX(
            FILTER('order', 'order'[Status] = "O"),
            'order'[Days open], 
            , 
            0, 
            Dense
            )
    )
    

    与DAX相比的唯一区别(除了格式化)是 RANKX 函数的倒数第二个选项是 0 而不是 1 . documentation of RANKX表示 0 按降序排列系列 .

    输出

相关问题