如何给一个有空单元格的Excel表格自动跳空按顺序编号?

Excel学习世界 2023-06-08 21:49:26

今天教一个最近经常被问到的编号问题:如何对一个有空单元格的区域自动跳空顺序编号?三个方案请收好。

案例:

给下图 1 中“姓名”非空的行按顺序填充序列号,效果如下图 2 所示。

解决方案 1:

1. 在 C12 单元格中输入以下公式 --> 向下拖动复制公式:

=IF(D2="","",MAX(A$1:A1)+1)

公式释义:

MAX(A$1:A1):

提取区域 A$1:A1 中的最大值;

随着公式下拉,起始单元格不变而截止单元格不断增加,即区域不断扩大;

当区域为空值时,最大值为 0;

+1:将上述区域中的最大值 +1,于是生成步长为 1 不断递增的序列;

IF(D2="","",...):如果 D2 单元格为空值,则显示空值;否则就等于上述计算结果;也就是遇到空值自动跳过,从而实现案例需求

* max 函数的第一个参数的行要固定,而后一个参数则需要相对引用。

解决方案 2:

1. 也可以使用如下公式:

=IF(D2<>"",COUNTA($D$2:D2),"")

公式释义:

COUNTA($D$2:D2):counta 函数的作用是统计区域中的非空单元格的数量;随着非空区域增加,实现递增计数的目的;

IF(D2<>"",...,""):D 列的单元格非空的时候才显示公式值;如果为空,即遇到不需要编号的跳空行时,显示空值

解决方案 3:

下面这种方法借助一下筛选操作,使公式变得更简单。

1. 选中数据表的任意单元格 --> 选择菜单栏的“数据”-->“筛选”

2. 点击“月份”旁边的筛选按钮 --> 在弹出的菜单中取消勾选“(空白)”--> 点击“确定”

3. 在 A2 单元格中输入以下公式 --> 下拉复制公式:

=MAX($A$1:A1)+1

这段公式在方案 1 中已经解析过,此处就不重复写了。之所以比方案 1 的公式简单,是因为在筛选的状态下下拉公式,隐藏起来的单元格中不会被复制到公式,因此也就不需要套用 if 了。

4. 取消筛选设置。

0 阅读:23

Excel学习世界

简介:Excel 学习交流