分享

再见了,Ctrl+E!一个案例,将文本函数一网打尽!

 Excel教程平台 2022-12-08 发布于四川

哈喽,大家好。

 
在之前的教程中,曾经分享过一期常用的文本函数合集,详情戳链接:

Excel里最常用的12个文本函数

今天再通过一个典型的数据截取案例,来看看这些函数怎么使用,如何嵌套?

有很多小伙伴可能会说,学那么多提取函数,还不如一个Ctrl+E

今天这个例子的确可以用Ctrl+E快速提取出来,但如果我们遇到更复杂的情况,Ctrl+E失灵的时候,文本函数才是我们的解决之道。

案例如下图所示,在一串字符中把房号信息提取出来。
 
 
针对这个例子,给大家介绍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的函数,在实际应用中比较难理解,想研究明白的话只能自己多琢磨。

好啦,以上就是今天的全部内容,感谢你的观看呀!

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多