下面是某公司的财务人员收到的一份纳税人的信息表,其中纳税人名称与税号连在一起了。得想个办法将其分离开来。
难点在于税号有15位,17位,18位与20位的,完全没有规律可以寻求,如果要使用分列与按固定长度提取的基本上没戏了。但是小必还是给大家想了两个办法:
一是利用智能填充去提取;
二是利用公式函数来提取,当然公式与函数教大家最简单的。
方法1
智能填充
在前面的帖子中给大家讲过了关于智能填充的用法。
操作步骤为:先将要提取的对应的部分复制粘贴到对应的列去,然后选中要填充的区域,按快捷键<Ctrl+E>,如上图所示。
注意:该方法在Excel2013的版本中才有此功能,以下的版本没有此项功能,只能选择公式与函数法。另外该功能对于规律很强的字符串能完全应对,但是对于上面像第3行的情况就出现了问题,所以请大家继续向下看,下面的解决的方法更为稳妥。
方法2
公式函数法
在公式与函数法中,给大家提供2种方法供大家选择,其基本的思路如下:
思路1:利用SEARCHB("?",A2)模式,此公式表示在A2单元格中的字符串中确定第一个单字节的位置;
思路2:2LEN(A2)-LENB(A2)模式,此公式表示计算单元单字节的字符的个数。
注意:在Excel中一个汉字表示两个两字节,属于双字节,而字母与数字属于单字节,即一个数字或者字母表示一个字符。
思路1解法:
在B2单元格中输入公式:=LEFTB(A2,SEARCHB("?",A2)-1),向下填充完成。
说明:SEARCHB("?",A2)表示在A2单元格中确定第一个单字节的位置为数字开始的位置,然后使用LEFTB函数从左向右进行提取字节至第一个单字节开始的前一位置即可,所以减1结果就正确了。
在C2单元格中输入公式:=RIGHTB(A2,LENB(A2)-SEARCHB("?",A2)+1),向下填充完成。
说明:LENB(A2)-SEARCHB("?",A2)+1表示在A2字符串中单字节字符的个数有多少个,LENB函数是提取A2单元格中的字符串的长度(单字节)。如果不想使用从右截取的函数,也可以直接使用公式:=SUBSTITUTE(A2,B2,""),即把公司名称替换为空白即可。
思路2解法:
在B2单元格中输入公式:=LEFT(A2,LENB(A2)-LEN(A2)),向下填充完成。
说明:LENB(A2)表示计算出所有的字数以单字节计数的长度,LEN(A2)表示以正常的字节长度计算,两者的差就可以得到了汉字的个数。然后使用LEFT函数进行截取即可。
在C2单元格中输入公式:=RIGHT(A2,2*LEN(A2)-LENB(A2)),向下填充完成。
说明:2LEN(A2)-LENB(A2)是计算出除汉字以外的单字节字符的数量,然后使用截取函数进行截取即可。如果不想使用从右截取的函数,也可以直接使用公式:=SUBSTITUTE(A2,B2,""),即把公司名称替换为空白即可。
小伙伴们,学会了吧,如果还没有学会的可以下载正同的案例素材进行练习。
链接:
https://pan.baidu.com/s/1zg7EDYVWvWDxWw-y2jniIg
提取码:xfce