我想要生成类似于DENSE_RANK()
数据库产品中的Rank函数(例如SQL Server
)。
以下是示例数据:
Col1
1
2
3
4
4
所以,我想要生成以下序列。
Col1 sequence
1 4
2 3
3 2
4 1
4 1
到目前为止,我已经使用了rank()
该函数。但是,它并没有像我预期的那样工作。
=RANK(A1,A1:A5, 0)
答案1
假设有一个动态数组公式UNIQUE:
=SUMPRODUCT(--(A1<=UNIQUE(A:A)))
如果没有,我们可以用这个创建唯一列表:
INDEX(A:A,N(IF({1},MODE.MULT(IF(MATCH($A$1:$A$5,A:A,0)=ROW($A$1:$A$5),ROW($A$1:$A$5)*{1,1})))))
这会使整个公式成为数组公式,并且在退出编辑模式时必须使用 Ctrl-Shift-enter 进行确认。
=SUMPRODUCT(--(A1<=INDEX(A:A,N(IF({1},MODE.MULT(IF(MATCH($A$1:$A$5,A:A,0)=ROW($A$1:$A$5),ROW($A$1:$A$5)*{1,1})))))))