打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
中文西文要分家,何需快刀斩乱麻


送人玫瑰,手有余香,请将文章分享给更多朋友

动手操作是熟练掌握EXCEL的最快捷途径!

【置顶公众号】或者【设为星标】及时接收更新不迷路



小伙伴们好,今天要和大家分享一则文本处理技巧,在无规则的情况下巧用函数提取姓名。

题目是这样的。根据下面表中源数据的信息,将姓名提取出来。





借助今天这两道题目,我要向大家分享一则如何在字符串中定位第一个汉字位置的技巧。

观察一下这两个表格,尤其是第二个表格,源数据中情况比较复杂,各种状态下的符号混杂,确实需要小心应对。

但是这两张表格也有有规律的地方。他们都是由汉字和一些特定的符号组成。我们知道,所有的汉字都是双字节,而所有的字母、数字、西文字符等都是单字节,因此这就给了我们解决问题的思路了。


01

先来看看第一个表格。这个表格相对比较简单,可以直接利用MID函数来提取。唯一的难点是如何确定姓名的起始位置。



在单元格C3中输入公式“=MID(A3,MATCH(2,LENB(MID(A3,ROW($1:$15),1)),),LENB(A3)-LEN(A3))”,三键回车并向下拖曳即可。

思路:

  • MID(A3,ROW($1:$15),1)部分,依次提取源数据中从左到右的每一个字符

  • LENB函数返回字节数。所有的汉字部分都返回数字“2”

  • 利用MATCH函数来确定第一个“2”的位置,也就是第一个汉字的位置

  • LENB(A3)-LEN(A3)部分则是用来确定姓名的长度。两部分相减,差值正好是汉字部分的长度

  • 最后应MID函数提取姓名

这里的重点是如何确定第一个汉字的位置,MATCH函数则配合LENB函数巧妙地解决了这个问题。


02

第二个表格则要复杂许多。数据中夹杂了中文括号(数量1-3个)、空格、不可见字符等等。



在单元格C2中输入公式“=TRIM(SUBSTITUTE(TRIM(MID(A2,MATCH(2,LENB(MID(A2,ROW($1:$50),1)),),FIND("(",A2&"(")-MATCH(2,LENB(MID(A2,ROW($1:$50),1)),))),"免费",""))”,三键回车并向下拖曳即可。

思路:

  • 和前面的那个问题一样,我们首先要确定第一个汉字的起始位置。这部分和前面的思路是相同的

  • 由于有些汉字后面跟有中文左括号,而有些有没有,因此需要在源数据末尾给他们统一加上一个中文左括号。接下来用FIND函数确定中文左括号的位置

  • FIND("(",A2&"(")-MATCH(2,LENB(MID(A2,ROW($1:$50),1)),)部分的含义是,中文左括号的位置减去第一个汉字的位置,所得值就是名字的长度

  • 这样,起始位置、名字长度都已经有了,就可以用MID函数提取姓名了

  • 完成后用TRIM函数去除多余空格

  • 接下来还有处理比较特殊的一个,“免费 环卫站站长”。利用SUBSTITUTE函数将“免费”替换后,去除多余空格即可。

通过上面两个例子我们可以看到,凡是在汉字和字符混合的文本字符串中,如果需要提取汉字部分,像今天介绍的这两个例子一样的,最常用的方法就是确定首个汉字的位置后,再来提取所需的字符串。


好了朋友们,今天和大家分享的内容就是这些了!喜欢我的文章请分享、转发、点赞和收藏吧!如有任何问题可以随时私信我哦!

-END-

长按下方二维码关注EXCEL应用之家

面对EXCEL操作问题时不再迷茫无助

我就知道你“在看”

推荐阅读
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel中的几个常用的组合函数
Excel中嵌套函数的八个经典组合!
Excel 函数教程,index match mid lenb len嵌套,综合案例讲解
Excel中八大经典函数组合,帮你整理齐了!
数组公式提取单元格内第一个汉字前的字符串
提取汉字,除了快速填充外,这招也很实用,需要速码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服