Excel中实现相同值对应相同序号、不同值序号连续递增的公式需求
Excel中实现相同值对应相同序号、不同值序号连续递增的公式需求
嗨,我完全get到你的需求了——你希望Excel里第一列(Col A)数值相同的所有行,第二列(Col B)都用同一个序号,而且这个序号要跟着前面所有行的总数连续递增,就像你给出的示例那样。别发愁,用一个简单的Excel公式组合就能搞定,我给你一步步讲清楚:
公式用法
假设你的数据和示例一样,是从A1单元格开始(没有表头),那在B1单元格输入下面的公式,然后下拉填充到所有行即可:
=ROW()-COUNTIF($A$1:A0,A1)
如果你的数据有表头(比如A1是“Col A”,实际数据从A2开始),那B2的公式调整为:
=ROW()-1-COUNTIF($A$2:A1,A2)
公式逻辑解释
ROW():获取当前单元格的行号,作为基础序号的参考COUNTIF($A$1:A0,A1):统计当前行之前(不包含当前行),和当前A列值相同的单元格数量。第一行的A0是空白区域,统计结果为0,所以第一行的序号就是行号1- 用行号减去之前相同值的出现次数,就能确保相同数值的所有行共用同一个序号,同时序号会随着行号自然连续递增,完美匹配你要的效果
验证示例
把公式套进你给出的示例数据里,得到的结果和你期望的完全一致:
| Col A | Col B |
|---|---|
| 74 | 1 |
| 71 | 2 |
| 70 | 3 |
| 70 | 3 |
| 70 | 3 |
| 67 | 6 |
| 65 | 7 |
| 65 | 7 |
| 61 | 9 |
小提示
如果你的数据不是从第一行开始,只需要调整公式里的行偏移量就行。比如数据从A3开始(前两行是表头),那B3的公式就是:
=ROW()-2-COUNTIF($A$3:A2,A3)
备注:内容来源于stack exchange,提问作者gary Fontaine




