一、案例
如下图所示,要求在B2:B9内填充序号,每个城市编号从1开始,相同城市编号连续 。效果如F2:F9所示 。
二、解决方法
方法一:IF ISBLANK函数
在B2单元格输入“1”,在B3单元格输入公式
=IF(ISBLANK(A3),B2 1,1),拖动填充柄向下复制公式 。
公式解析:
(1)取消A2:A9合并单元格后 , 如下图所示,可以看到本例中每个合并单元格的文本实际只出现合并单元格的第1行 。
(2)ISBLANK函数用于判断单元格是否为空值,若为空值 , 返回True 。根据解析(1),A3单元格为空值,ISBLANK(A3)返回True 。
(3)IF(ISBLANK(A3),B2 1,1)指如A3单元格为空值,则返回B2 1,否则返回1 。如A3单元格为空值,说明为同一城市,只需要在上一行序号基础上加1即可;如A3不为空值 , 说明为不同城市,那么从1开始编号 。
方法二:MATCH函数
【二 合并单元格内包括的各项填充连续序号—合并单元格系列】在B2单元格输入公式
=ROW(2:2)-MATCH("座",$A$2:$A2,1),拖动填充柄向下复制公式 。
公式解析:
(1)MATCH("座",$A$2:$A2,1)指在$A$2:$A2中查找“座” 。“座”是一个很大的汉字,大部分汉字比它小 。如下图所示,当我们在Excel中比较“座”和“北京”的大小时,Excel返回True,也就是说Excel认为“座”大于“北京” 。
Excel中的汉字以拼音首字母在26个英文字母中的顺序进行排序 。“座”的拼音首字母“Z”大于“北京”的首字母“B”,因此“座”大于“北京” 。
(2)MATCH("座",$A$2:$A2,1)在$A$2:$A2中查找“座”,但是A列并没有“座”字 。MATCH函数的第3个参数“1”指当找不到查找值时 , 返回小于查找值的最大值,此时查找区域必须按升序排列 。具体到本例 , A2:A9中的城市无需按升序排列,MATCH函数会返回$A$2:$A2中最后一个有文本的单元格所在的位置 。MATCH返回值如下图所示:
(3)ROW(2:2)指返回引用的行号“2” 。当公式向下复制时,会依次返回3、4、5、6等值 。