如何在 Excel 中生成密集排名

如何在 Excel 中生成密集排名

我想要生成类似于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})))))))

在此处输入图片描述

相关内容