wps如何跳过空行填充连续序列号? wps Excel跳过空行填充序号的技巧
大家好,今天我们来讲解一个关于填充序号的特殊需求的解决方法。
如下图所示:
C列有相同的“类别”数据,并且不同的“类别”数据交界处都会存在一行空行作为间隔。
我们想要进行序号的填充,要求就是:相同的类别数据的序号是相同的,不同的类别序号是由1开始顺序递增的,并且填充序号时会自动跳过空行的空值单元格。

首先我们先来做一个逻辑判断:
=C2<>C1
我们人为使C2单元格与上一单元格C1内容做一个不等于的逻辑式。这样我们下拉填充公式后,其实判断的就是C列的当前单元格内容与上一单元格内容是否不相同。很明显会返回逻辑值TRUE或FALSE。
C列的当前单元格内容与上一单元格内容不相同时,返回TRUE,相同时,返回FALSE。

其实在Excel中,逻辑值TRUE等于1,逻辑值FALSE等于0。那么我们可以通过对上一步的结果乘以1的运算:
=(C2<>C1)*1
将逻辑值转换为1或0的结果。这样观察与理解可以更加直观感受。
那么此时,我们发现这样一个规律:
每组相同“类别”的首个内容均为数字1,每组相同“类别”的非首个内容均为数字0。

然后我们用MAX函数与上一步结果相加:
=MAX($B$1:B1)+(C2<>C1)*1
MAX函数的参数特点是:
$B$1:B1区域起始位置$B$1加了绝对引用,区域结束位置B1是相对引用,这样下拉填充公式后,当前单元格的返回结果总是它上面的区域中的最大值。

我们看一下每一步的运算过程,有助于我们加深理解:
- B2→MAX($B$1:B1)+(C2<>C1)*1→0+1=1
- B3→MAX($B$1:B2)+(C3<>C2)*1→1+0=1
- B4→MAX($B$1:B3)+(C4<>C3)*1→1+1=2
- B5→MAX($B$1:B4)+(C5<>C4)*1→2+1=3
- B6→MAX($B$1:B5)+(C6<>C5)*1→3+0=3
- B7→MAX($B$1:B6)+(C7<>C6)*1→3+0=3
- B8→MAX($B$1:B7)+(C8<>C7)*1→3+1=4
- B9→MAX($B$1:B8)+(C9<>C8)*1→4+1=5
- B10→MAX($B$1:B9)+(C10<>C9)*1→5+0=5
- B11→MAX($B$1:B10)+(C11<>C10)*1→5+0=5
我们观察到,其实不同类别之间的那个空行间隔所对应的序号(标黄区域),我们是不需要的。假如当我们手动去掉这些序号时,我们就得到了最终想要的效果:相同的类别序号一样,不同的类别之间序号是由1~N顺序递增的。

其实原理很简单,当我们去掉空行所对应的序号时,其实MAX所统计的最大值会失去空行区域的干扰,形成顺序递增特点。
我们继续看一下每一步的运算过程,加深理解:
- B2→MAX($B$1:B1)+(C2<>C1)*1→0+1=1
- B3→MAX($B$1:B2)+(C3<>C2)*1→1+0=1
- B4→空→0
- B5→MAX($B$1:B4)+(C5<>C4)*1→1+1=2
- B6→MAX($B$1:B5)+(C6<>C5)*1→2+0=2
- B7→MAX($B$1:B6)+(C7<>C6)*1→2+0=2
- B8→空→0
- B9→MAX($B$1:B8)+(C9<>C8)*1→2+1=3
- B10→MAX($B$1:B9)+(C10<>C9)*1→3+0=3
- B11→MAX($B$1:B10)+(C11<>C10)*1→3+0=3
那么我们就可以利用IF函数代替手动去空行序号:
=IF(C2<>"",MAX($B$1:B1)+(C2<>C1)*1,"")
利用IF函数条件判断:
如果C2单元格不等于空值时,我们返回MAX($B$1:B1)+(C2<>C1)*1的原值;如果C2单元格等于空值时,则返回空值即可。

推荐阅读:Excel不规则合并单元格怎么批量填充序号? 不规则合并单元格排序的技巧