Excel 能否在填充时只让序号中间的某几位数值递增?

四维公司的员工编号规则如下:

SW代表四维,001开始,代表员工工号,最后用01代表A车间、02代表B车间,因此A车间的员工编码序号应为SW00101、SW00201、SW00301,B车间的员编码序号应为SW00102、SW00202、SW00302。

图4.201中B列和D列需要填入员工编码,如何才能快速完成呢?

图4.201 编码表

解题步骤

若字符串中有多个数字却只要求部分数字在填充时产生递增,唯一的方法是将不需要递增的字符放在自定义的数字格式中,将需要产生递增的部分直接写在单元格中,具体操作步骤如下。

1.选择B2:B11区域,然后按组合键<Ctrl+1>,弹出“设置单元格格式”对话框。

2.选择“自定义”,然后在右方的格式代码框中输入代码“\S\W000\0\1”,效果如图4.202所示。

图4.202 设置格式代码

3.单击“确定”保存设置,同时返回工作表界面。

4.重复步骤1、2、3,对D2:D11区域设置格式代码“\S\W000\0\2”,然后单击“确定”按钮返回工作表界面。

5.在B2:B3单元格分别输入1和2,Excel会自动将它们显示为SW00101、SW00201,效果如图4.203所示。

6.选择B2:B3,然后向下填充到B11,B2:B11区域会自动产生递增的编码,效果如图4.204所示。

图4.203 输入编码

图4.204 填充编码

7.在D2:D3区域输入1和2,Excel会将它们显示为SW00102、SW00202。和步骤6一样,D2:D3同样可以向下填充产生递增的编码,编码的首尾字符不变,仅仅是中间的001、002会逐个递增。

知识扩展

1.在单元格中输入的数值可以在填充时递增或递减,但是通过自定义单元格的数字格式从而产生的字符是永远不变的。

2.按下填充柄向下填充数值时,假设数值没有产生递增。例如,A1单元格输入1,然后向下填充时A2、A3仍然是1,那么此时可以在A2单元格输入2,然后选择A1:A2区域再向下填充。其原理是通知Excel填充时的步长值,让Excel按照用户指定的差异频率去填充后面的区域。

3.格式代码“\S\W000\0\1”中间的3个0表示单元格总是显示为3位数,位数不足时用0填充,位数达到三位时则显示数值本身。其他“SW”和“01”是永远在单元格中显示出来的值,不需要用户输入,因此采用符号“\”消除这些字符的特殊含义,还原其字符属性。假设不使用“\”,Excel则会弹出出错提示对话框。

当然,“W”和“1”本身是可以不使用“\”的,因此格式代码也可以简写为“\SW000\01”。不过为了方便理解,以及照顾新手,所有前缀和后缀都加上“\”较好,对于老手而言没有坏处,对于新手而言却有助于理解,在有利无弊的情况下采用保守的措施比较妥当。