我已经得到了下面的表格,并希望添加计算列排名(最古老的顶级3),只有在状态为"O“时才进行排序。请注意,**排名(最老的前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))我得了前三名,而不是身躯一名。另外,使用筛选器过滤掉任何其他数据。我试着用ALLSELECTED替换过滤器,但是它没有工作。
发布于 2018-12-10 12:55:10
输入
我使用以下数据创建了一个名为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。RANKX表示0按降序排列序列。
输出

发布于 2019-08-13 06:01:52
FILTER('order', 'order'[Status] = "O"),更改为FILTER(all('order'), 'order'[Status] = "O"),如果不是,您的结果可以在一个表中保持不变。
https://stackoverflow.com/questions/53704796
复制相似问题