首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >功率和滤波器

功率和滤波器
EN

Stack Overflow用户
提问于 2018-12-10 11:33:21
回答 2查看 7.2K关注 0票数 2

我已经得到了下面的表格,并希望添加计算列排名(最古老的顶级3),只有在状态为"O“时才进行排序。请注意,**排名(最老的前3位)**是期望的结果。

代码语言:javascript
复制
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

我有下面的代码,但它们不适合我。

代码语言:javascript
复制
Rank = IF(order[Status] = "C", BLANK(),
          RANKX(FILTER(order, order[Status] = "O"),
                order[Days open], , 1, Dense))

我得了前三名,而不是身躯一名。另外,使用筛选器过滤掉任何其他数据。我试着用ALLSELECTED替换过滤器,但是它没有工作。

EN

回答 2

Stack Overflow用户

发布于 2018-12-10 12:55:10

输入

我使用以下数据创建了一个名为order的表:

代码语言:javascript
复制
Status  Days open
C       1
O       1
O       2
C       3
C       4
C       5
O       6
O       7
C       8
C       9

代码

然后,我使用以下DAX添加了一个计算列:

代码语言:javascript
复制
Rank = 
IF('order'[Status] = "C", 
    BLANK(),
    RANKX(
        FILTER('order', 'order'[Status] = "O"),
        'order'[Days open], 
        , 
        0, 
        Dense
        )
)

与DAX相比,唯一的区别是(除了格式化),RANKX函数的第二个到最后一个选项是0而不是1RANKX表示0按降序排列序列。

输出

票数 2
EN

Stack Overflow用户

发布于 2019-08-13 06:01:52

FILTER('order', 'order'[Status] = "O"),更改为FILTER(all('order'), 'order'[Status] = "O"),如果不是,您的结果可以在一个表中保持不变。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53704796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档