我们在处理Excel数据时,经常会遇到提取混合信息中的数字、字母或者汉字。以前技巧妹在分享过快速填充、结合Word等解决问题的妙招,今天主要和大家讲解一下如何利用函数公式提取复杂混合字符串中的汉字。
如下图表格,混合文本字符串中有数字、字母、符号和汉字,排序无规律,现在需要提取出里面的汉字内容。
输入函数公式:
=IFERROR(MID(A2,MATCH(0,0/(MIDB(A2,ROW($1:$50),1)=" "),0),(LENB(A2)-LEN(A2))),""),按Ctrl+Shift+Enter三键输入,往下填充公式。
公式看起来很复杂,其实不难理解,我们来分解一下:
1、MIDB(A2,ROW($1:$50),1)="",用MIDB函数公式提取单字节字符,如果是数字或字母,返回本身,如果是汉字,则返回空值。再对返回的这组数组进行判断,是否等于空值,如果等于"",返回结果TRUE,否则返回FALSE,最后结果是一组逻辑值数组;
2、0/(MIDB(A2,ROW($1:$50),1)=" "),用0除于上面返回的逻辑值数组,0除于TRUE,返回0,0除于FALSE,返回错误值,结果为0和错误值组成的数组;
3、MATCH(0,0/(MIDB(A2,ROW($1:$50),1)=" "),0),用MATCH函数公式查找0值在数组中的第一个位置,对应的就是第一个汉字的在混合字符传中的具体位置;
4、LENB(A2)-LEN(A2),一个汉字为2个字节,1个字符,用字符串的字节数减去字符数,刚好是汉字的个数;
5、用MID函数提取字符串中的汉字,起始位置为第一个汉字的具体位置,提取字符个数为计算出来的汉字个数;
6、因为字符串中存在没有汉字的情况,所以结果为错误值,需要用IFERROR函数来屏蔽错误值。
也可以用另外一个函数公式来解决问题:
=IFERROR(MID(A2,MATCH(0,0/(MID(A2,ROW($1:$50),1)>="吖"),0),(LENB(A2)-LEN(A2))),"")
公式说明:这个函数公式思路和前面不一样的地方在于,把MID函数公式提取出来的字符和最小汉字“吖”进行比较,大于或等于这个字的字符都是属于汉字,返回结果TRUE,否则返回FALSE。
教程推荐
领取专属 10元无门槛券
私享最新 技术干货