在图7.112中,省名所在单元格已经合并,现要求按省名对该省的参赛队员编号,其中第一个省编号A,第一个队员编号A1,然后向上递增。第二个省的第二个队员则编号为B2。

Excel 能否按双条件对选手编号?-Excel22

图7.112 参赛选手信息表

解题步骤

要根据省名数量产生升序的字母,重点在于COUNTA和CHAR两个函数的应用,而累加字母右边的数字编号则重点在于MID函数的应用。具体操作步骤如下。

1.在A2单元格输入以下公式:

Excel 能否按双条件对选手编号?-Excel22

2.将公式向下填充到A15,公式产生的编号如图7.113所示。

Excel 能否按双条件对选手编号?-Excel22

图7.113 双条件编号

知识扩展

1.COUNTA函数用于计算区域中非空单元格的数量,以图7.113为例,“=COUNTA(B2:B2)”、“=COUNTA(B2:B3)”、“=COUNTA(B2:B4)”的计算结果都是 1,因为合并区域中只有左上角单元格才有数据。

“=COUNTA(B2:B6)”、“=COUNTA(B2:B7)”、“=COUNTA(B2:B8)”的计算结果则为2,因为它的计算对象包含两个合并区域。

2.CHAR 函数可以根据字符编码生成对应的字符,如 49886 代表“罗”,那么公式“=CHAR(49886)”的运算结果就是“罗”。

字母A的编码是65,字母B的编号是66,字母C的编码是6……基于此规律,只要使用65开头的自然数编码作参数,CHAR函数就可以生成A、B、C这种升序的序号。图7.114中展示了表达式“64+COUNTA($B$2:B2)”在不同单元格的计算结果变化过程,读者可以根据图 7.114理解字母编号的生成规律。

Excel 能否按双条件对选手编号?-Excel22

图7.114 CHAR函数的参数变化过程

3.由于公式从 A2 开始,因此表达式“IF(B2<>"",1,MID(A1,2,2)+1)”的含义是:当公式所在单元格的右边单元格非空时,那么产生字符1,否则提取上方单元格字母以外的数字并累加1。由于本例的数据源少,不需要用到两位字母,因此在设置公式时可以取巧,用 MID 函数从第 2位开始取值,提取长度也等于2位。在实际工作中需要根据数据的变化修改公式。