关于公式=RANK.EQ(B6,B:B)+COUNTIF($B$2:B6,B6)-1中-1作用的咨询
公式中
-1 的作用解析 这个公式是为了给重复的随机数生成连续不重复的分配序号,-1 的作用是修正偏移,让序号从1开始连续递增,拆解如下:
公式各部分功能
RANK.EQ(B6,B:B):返回当前单元格B6在整个B列的排名,但相同数值会返回相同的最高排名(比如两个相同的随机数,都会得到第一个出现的位置排名)。COUNTIF($B$2:B6,B6):统计从B2到当前行B6中,和B6数值相同的单元格数量,用来给同数值的条目分配递增的偏移量。-1:抵消COUNTIF初始计数的冗余——因为第一个出现的重复值,COUNTIF结果是1,加上RANK.EQ的结果后会多1,减去1才能让第一个重复值的序号和RANK.EQ结果一致,后续重复值则通过COUNTIF的递增实现连续序号。
实例验证
假设B列随机数存在重复:
| 行号 | B列数值 | RANK.EQ结果 | COUNTIF结果 | 公式计算结果 |
|---|---|---|---|---|
| 2 | 85 | 1 | 1 | 1+1-1=1 |
| 3 | 85 | 1 | 2 | 1+2-1=2 |
| 4 | 70 | 3 | 1 | 3+1-1=3 |
如果去掉-1,第2行结果会变成2,序号从2开始,不符合常规的连续序号逻辑;加上-1后,既能处理重复值的排名冲突,又能保证整体序号从1开始无间隔。
内容的提问来源于stack exchange,提问作者Renee Ashley
相关产品推荐
相关产品推荐

