用7个Excel公式详细讲解:文本提取函数的使用技巧
作者:老菜鸟来源:部落窝教育发布时间:2022-12-06 17:13:48点击:2533
编按:
哈喽,大家好,今天通过一个数据提取的例子,来给大家分享一些文本提取函数的使用技巧。涉及到的函数有:MID、FIND、LEFT、REPLACE、MIDB、FINDB、RIGHTB、TRIM、SEARCHB
在之前的教材中曾经分享过一期常用的文本函数合集:
今天再通过一个典型的数据提取案例,了解更多的文本函数使用技巧。
案例如下图所示,要在一串字符中把房号信息提取出来。
针对这个例子,给大家介绍7个不同的公式,涉及到的函数有:MID、FIND、LEFT、REPLACE、MIDB、FINDB、RIGHTB、TRIM、SEARCHB。
温馨提示:由于篇幅所限,仅对每个公式的思路做介绍,不会设计函数的具体讲解。
公式1:=MID(A2,FIND("-",A2)-1,FIND("定",A2)-FIND("-",A2)+1)
这个数据源看似杂乱无章,如果找不到规律的话是无法准确提取出房号的。
仔细观察后可以发现,房号后面都有“定金”两个字,而且房号是包含了“-”这个符号的。第一个“-”前面是一位数字,找到这个规律后方法就有了。
用FIND("-",A2)-1定位出房号的起始位置,FIND("定",A2)定位出房号的结束位置,FIND("定",A2)-FIND("-",A2)+1的作用就是用结束位置-起始位置,确定出房号的长度。
再用MID(数据源,起始位置,截取长度)就可以得到需要的结果。
公式2:=MID(LEFT(A2,FIND("定",A2)-1),FIND("-",A2)-1,9)
这个公式首先用LEFT(A2,FIND("定",A2)-1)截取出“定”字前面的内容。
接下来只需要从“-”这个符号前面一位截取即可。因为房号的长度都在9个字符以内,所以公式的意思实际上就是MID(“定”前面的内容,“-”前面一位开始,9个字)。
公式3:=MID(REPLACE(A2,FIND("定",A2),99,),FIND("-",A2)-1,9)
这个公式与公式2的区别在于先用REPLACE(A2,FIND("定",A2),99,)把“定”字后面的内容全部替换为空。
然后再用MID完成房号提取,这一步和公式2完全一样。
公式4:=REPLACE(REPLACE(A2,FIND("定",A2),99,),1,FIND("-",A2)-2,)
这个公式的第一步与公式3一样,先用REPLACE(A2,FIND("定",A2),99,)把“定”后面的内容替换掉,再用一次REPLACE函数从左面第一个字符开始到“-”前两个字符全部替换掉,整个公式相当于用了两次查找替换。
在介绍下面几个公式之前,先给大家普及一个概念:字符和字节的区别。
简单来说,字符指类字形单位或符号,包括字母、数字、运算符号、标点符号和其他符号,以及一些功能性符号。而字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位。
如果用字符数来计算数据长度的话,各种字母、数字、符号等等都是一个字,而如果用字节来计算数据长度的话,这里就有区别了,汉字、中文符号等等是两个字节,而数字、半角符号等等只能算一个字节。
在我们今天的这个例子中,“-”就是1个字节,而“定”就是2个字节。
之所以要说明这个概念,是因为下面的几个公式都利用了字节和字符计算长度时的这种差异。
MIDB、FINDB、RIGHTB、SEARCHB等这些以B结束的函数都是以字节来计算的函数。
公式5:=MIDB(A2,FINDB("-",A2)-1,8)
仔细观察不难发现,当房号只有7位的时候,实际上最后是有一个空格的,只有满8位的才正常。
这是因为用MIDB函数提取8个字节而最后第8个字符又是双字节的时候,就只能提取前面7个再补一个空格,因为不可能把第8个字提取一半。
如果要求比较高的话,可以再加一个TRIM清除这个多余的空格,公式修改为:
=TRIM(MIDB(A2,FINDB("-",A2)-1,8))
下面这两个公式也是用了字节计算的方式,有兴趣的同学可以自己验证一下,就不一一赘述了。
公式6:=TRIM(MIDB(A2,SEARCHB("?",A2),8))
公式7:=TRIM(RIGHTB(LEFT(A2,FIND("定",A2)-1),8))
文本函数中这些结尾是B的函数,在实际应用中比较难理解,想研究明白的话只能自己多琢磨。
本文配套的练习课件请加入QQ群:902294808下载。
做Excel高手,快速提升工作效率,部落窝教育《一周Excel直通车》视频和《Excel极速贯通班》直播课全心为你!
扫下方二维码关注公众号,可随时随地学习Excel:
相关推荐:
版权申明:
本文作者老菜鸟;同时部落窝教育享有专有使用权。若需转载请联系部落窝教育。