这是某同学在工作中突然遇到的一组实际应用:对一列数据自动编号,当删除某些行时,序号会跳过空行自动重新编。
如果有好多列,每列的行数不一致,如何自动对行数最大的列编号?
如果这好多列当中有空行,如何跳过空行自动对最大的列编号?
案例:下面就依次讲解几种场景。
01单列自动编号对下图 1 中的 B 列自动添加顺序序号,如果 B 列中有空行,那么只会对非空单元格顺序编号。
效果如下图 2 所示。
1. 在 B2 单元格中输入以下公式 --> 下拉复制公式:
=COUNTA($B$2:B2)
公式释义:
统计参数区域内的非空单元个数;
参数中的第一个单元格要绝对引用,第二个单元格必须相对引用
如果删除其中的部分单元格,序号会自动从下方的非空单元格开始重新递增,空单元格不会统计在内。
给 E 至 G 列中的最大行数添加顺序序号。
1. 在 D2 单元格中输入以下公式 --> 下拉复制公式:
=ROWS($E$2:G2)
公式释义:
统计参数区域内的总行数;
参数的第一和第二个单元格同样要分别绝对和相对引用
如果表格区域中有空行,这个公式就不行了,它对空行仍然会编号。
1. 在 D2 单元格中输入以下公式 --> 下拉复制公式:
=IF(COUNTIF(E2:G2,"<>"),MAX($D$1:D1)+1,"")
公式释义:
COUNTIF(E2:G2,"<>"):计算 E2:G2 区域中非空单元格的个数;
IF(...,max(...),""):只要上述结果不为 0,即单元格不全为空,就是 if 中的“真”条件,从而取 max 函数的值;为 0 则是“假”条件,返回空值;
MAX($D$1:D1)+1:取出区域 $D$1:D1 中的最大值,即最大编号,+1,就得到递增编号
插入空行后,再拖动公式,就会自动跳过空行连续编号。