我曾经不止一次反复强调:Excel 处理数据的第一要务就是保持数据源干净,包括但不限于:
- 不要合并单元格
- 没有空白单元格
- 日期、数字格式要统一
- 数字格式不要设置成文本
- 不要设置重复标题行、列
- 原始数据不要和计算结果混杂
- 数字和单位不要放在同一个单元格
- 尽量不要把原始数据放在同一个工作表中
理想是美好的,现实是骨感的,实际操作中,免不了还是要处理不规范的原始表格。
比如,如何给不规则合并的单元格批量填充序号?这就很令人头痛。
案例:
下图是保单投保人和受益人列表,A 列以每一张保单为单位合并了单元格,现在需要给 A 列填充序号,如何批量实现?
解决方案:
由于合并单元格的行数没有规律,所以无论是用鼠标拖动,还是用“填充”功能都无法实现需求。
“填充”功能的用法可以参见 Excel 99%的人忽略了的“填充”功能。
那怎么做?先说答案:
- COUNTA 函数法
- MAX 函数法
- COUNT 函数法1
- COUNT 函数法2
COUNTA 函数法:
1. 选中需要填充的所有单元格
2. 在公式栏输入以下公式,按 Ctrl+Enter 批量填充公式即可:
=COUNTA($A$1:A1)
公式释义:
- COUNTA 的作用是计算区域中非空单元格的个数
- 公式中固定了起始单元格,即序列从 $A$1 开始,往下直至公式所在位置的上一个单元格
- 用 COUNTA 统计序列中非空单元格总数,以此实现顺序编号目的
- COUNTA 函数的用法,可参见 Excel函数(17)–counta函数计算保单人数
我们来看一下第 2 个合并单元格的公式,帮助理解公式释义:
MAX 函数法:
1. 选中需要填充的所有单元格
2. 在公式栏输入以下公式,按 Ctrl+Enter 批量填充公式即可:
=MAX($A$1:A1)+1
公式释义:
- MAX 顾名思义就是获取序列中的最大值
- 若单元格为文本,则计为 0
- 本公式的序列为:从固定起始单元格 $A$1,往下直至公式所在位置的上一个单元格
- 用 MAX 取出序列中的最大值,加上步长 1,即为当前单元格编号
我们来看一下第 2 个合并单元格的公式,帮助理解公式释义:
COUNT 函数法1:
1. 选中需要填充的所有单元格
2. 在公式栏输入以下公式,按 Ctrl+Enter 批量填充公式即可:
=COUNT($A$1:A1)+1
公式释义:
- COUNT 函数与 COUNTA 的区别在于:前者只统计数字项,如遇文本项,计为 0
- 因为起始项 $A$1 为文本,用 COUNT 函数统计的时候就是 0,因此本公式需要加上步长 1
我们来看一下第 2 个合并单元格的公式,帮助理解公式释义:
COUNT 函数法2:
上述公式也可以写成如下形式:
=COUNT($A$1:A1,1)
- 表示统计序列为:$A$1:A1 以及 1,多了一个数值,COUNT 统计的时候就相当于加了步长 1
- 公式中的 1 可以替换为任意数字,效果是一样的