1、left函数,是根据指定的字符数,从左侧取出若干字符,此函数有两个参数,第一个参数是母文本字符串,也就是包含要提取字符的文本字符串,可以是字符、引用或表达式,第二个参数要从中提取字符的个数,可以是数字、引用或者返数字的表达式。第二参数可以省略,省略后代表只取最左侧的一个字符。如取左侧四个字符,公式为:=left(a2,4)。
2、right函数与left函数类似,也有两个参数,参数的含义也相同,只是left是从左侧取字符,right是从右侧取若干个字符,如取右侧的三个字符,公式为:=right(a2,3)。
3、mid函数是从中间取字符,此函数有三个参数,第一个参数含义与上面两个函数相同,第二个参数是提取字符的起始位置,第三个参数是提取字符的个数,与前两个函数的第二参数意义相同。如从第五个字符开始提取,提取三个字符,公式为:=mid(a2,5,3)。
4、如果mid的第二参数为1,此函数就相当于left函数,也是从最左侧提取若干字符:=mid(a2,1,4),只不过有了left函数,用不着画蛇添足,另外要注意的是,mid函数的三个参数都不能省略。
5、同样的,mid函数也可以取右侧的若干字符:=mid(a2,8,3),当然这是知道从哪个字符开始取,如果不知道,就要先判断一共有多少字符,再确定从哪个位置取:=mida2,len(a2)-3+1,3。
6、当然,mid函数也可以由left和right推出来,只是一般情况下公式会变长,不太方便,如:=leftrighta2,len(a2)-4,3,或者:=rightleft(a2,5+3-1),3,都可以表示从第五个字符开始取,取出三个字符。
7、有时候在输入数据时,将文字和数字混在一体,现在要将其分开到不同单元格中,如姓名和电话数据在一个单元格中,现在要分别提取出姓名和电话,但姓名的字数并不相同,号码位数也不定相同,直接提取是无法确定字符数的,此时可以借用双字节字符函数,一个汉字按2个字节算,提取姓名的公式用:=lefta2,lenb(a2)-len(a2)。
8、数字的个数是总字符数减去汉字的个数:len(a2)-lenb(a2)-len(a2),即:len(a2)*2-lenb(a2),提取号码公式为:=righta2,len(a2)*2-lenb(a2)
9、如果除了姓名以外还有其它汉字,或者姓名中夹杂了空格,就不能用上面的方法提取了,首先要判断数字开始出现的位置,再进行下一步的提取,但现在并不知道第一个出现的数字是哪个,有的数字还没有出现,所以返位置时,要利用技巧,将各数字补全,再从中取出各数字出现的位置的最小值。=minfindrow($1:$10)-1,a2"0123456789",这样输入是数组公式,即同时按住ctrl+shift+enter结束公式编辑,会自动生成一对“{}”,将row($1:$10)-1改为数组参数,就可以按常规方法输入:=minfind(0;1;2;3;4;5;6;7;8;9,a2"0123456789")。
10、知道了首数字出现的位置,再结合其它left、right函数,就可以取出姓名了:=lefta2,minfind(0;1;2;3;4;5;6;7;8;9,a2"0123456789")-1。
11、提取号码时,不知道右侧有没有其它字符,也不能直接取,此时要借助lookup函数的向后兼容性来提取,公式为:=-lookup1,-mida2,minfind(0;1;2;3;4;5;6;7;8;9,a2"0123456789"),row($1:$15),有关此函数的用法,可参看:excel中lookup函数的高级应用。
12、从身份证号中提取出生日期,也是经常要做的事,现在是二代证,都是18位,从第七位开始的8位数,代表出生日期,但原来登记的可能是一代证,只有15位,从第七位开始的6位数,代表出生日期:=textright19mida2,7,6+len(a2)=18*2,8,"0-00-00"。
13、上面说了,一般情况下使用left、right去替换mid函数,公式会变长,但从身份证号中判断性别,这样用就非常省事,要比使用mid函数简单了:=ifmodrightleft(a2,17),2,"男","女"。