在Excel中生成行数不规则的序号
平常我们在使用Excel时,序号都是逐行加1,第1行是1,第2行是2,以此类推,但是有时我们会希望按某一特定的列来标记行号,例如:我们希望序号是按客户进行递增,第1个客户的序号是1,第2个客户的序号是2,以此类推,如果客户有多行,则合并序号单元格,统一标记一个序号。例如下图:

那么接下来,我们看一下如何批量处理这个问题。首先我们看一下原始文件,这个原始文件是比较正常的,如果没有这个特殊需求,我们直接填充序列就可以满足要求了。

1. 删除原有的序号列中的内容,保持所有单元格为空的状态

2. 先选择表格的任意一个单元格,然后选择数据分类汇总,再分类字段中选择"新证件号码",汇总方式选择"计数",选定汇总项选择"序号",然后点击"确定"。由于客户名称可能会重名,所以这里我们使用证件号码进行分类

3. 选择整个序号列(A列),然后按Ctr+G,打开定位对话框,点击"定位条件"按钮。

4. 选择"空值",然后点击"确定"

5. 点击"开始"标签中的"合并后居中",我们要填充序号的单元格就都准备好了

6. 现在我们再次选择分类汇总,然后点击"全部删除",删除其它不需要的行

7. 至此,我们就按客户合并了所有的单元格,如果一个客户有多行,那么我们也合并了多个单元格,剩下的就是把序号填充进去。

8. 这里有一个小技巧,先选择A2单元格,再按住shift选择序号列(A列)的最后一个单元格(我这里是A735单元格,当然你们从截图里是看不到的),然后在公式栏中输入"=MAX($A$1:A1)+1",输入完成后,按Ctrl+Enter,序号就自动填充好了

好了,至此我们就完成了所有的操作。现在序号将是按客户的证件号码列(E列)进行填充,相同客户的序号都是统一的。
在这里我简单解释一下,首先我们是通过分类汇总,按客户的证件号码进行汇总,将同一个客户汇总到一起,然后我们再利用定位功能,将同一个客户的多行进行了合并,这时得到了一个空的序号列,最后我们再利用MAX公式,进行了填充,使序号自动填充进去。通过分类汇总,同一个客户对应的行都在一起,然后对应的下方会有一个"小计",在咱们这里实际上就是"计数"行。由于计数行是有内容的,这就为我们使用定位功能选择"空值"创造了条件,选定所有要填充序号的单元格之后,我们使用合并单元格功能,对多行进行了合并,如果是单行的话,这个功能也没有影响到它,所以每个客户这时就有了统一的合并好的序号单元格。
MAX公式的原理是对比当前单元格和当前单元格之上的单元格,比较后取最大值+1。序号1是由于第一次比较同一个单元格,结果值为0,所以加1得第1个序号,之后每次通过MAX获得最大的序号,再加1。这里有两点要注意,第一是选定单元格时,一定先选A2,再选序号列的最后一个单元格,第二是输入完公式,一定是按Ctrl+Enter,这样才可以正确填充所有的公式。