分享

复杂的问题提取题目,但倒找规律后依旧可用MID经典套路解决!

 EXCEL应用之家 2022-08-08 发布于上海


小伙伴们好,今天要和大家分享一道特殊的文本提取的题目。原题目是这样的。



题目要求在摘要中将房号的信息提取出来放在G列。粗看之下,这不是一个特别难的题目,利用SEARCHB函数确定第一个单字节字符的位置,再利用LENB配合MATCH函数确定房号后第一个汉字的位置,就可以顺利将房号提取出来了。

真的是这样吗?


01

按照上面的思路,公式写下来如下。



在单元格G2中输入公式“=MID(MIDB(F2,SEARCHB("?",F2),100),1,MATCH(2,LENB(MID(MIDB(F2,SEARCHB("?",F2),100),ROW($1:$100),1)),)-1)”,三键回车后并向下拖曳即可。

思路:

  • SEARCHB("?",F2)部分确定第一个单字节字符的位置

  • MIDB(F2,SEARCHB("?",F2),100)函数将这个字节右侧所有的数据都提取出来

  • MID(MIDB(F2,SEARCHB("?",F2),100),ROW($1:$100),1)部分,从上面这个提取出来的数据的第1、2、..、100个字符开始,依次提取长度为1的字符

  • LENB(MID(MIDB(F2,SEARCHB("?",F2),100),ROW($1:$100),1))部分返回每个字符的字节长度

  • MATCH(2,LENB(MID(MIDB(F2,SEARCHB("?",F2),100),ROW($1:$100),1)),)-1部分确定第一个双字节(即第一个汉字)所在的位置,减去1后就是最后一个单字节字符的位置

  • 最后利用MID函数提取出房号

稍等一下,我们发现,有一些数据将“#”符号也提取出来了,而这个不是我们所需要的。


02

在重新观察一下源数据,我们发现凡是带有“#”符号的,后面都紧跟着汉字“车”;而没有“#”符号的,房号后面都紧跟“号车”这两个汉字。

找到这个规律后,解决的方法也就有了。



我们只需要把“#车”替换成“号车”就可以了。

在单元格G2中输入公式“=MID(MIDB(SUBSTITUTE(F2,"#车","号车"),SEARCHB("?",SUBSTITUTE(F2,"#车","号车")),100),1,MATCH(2,LENB(MID(MIDB(SUBSTITUTE(F2,"#车","号车"),SEARCHB("?",SUBSTITUTE(SUBSTITUTE(F2,"#车","号车"),"#车","号车")),100),ROW($1:$100),1)),)-1)”,三键回车并向下拖曳即可。

思路和上一个完全一样。


03

下面留给大家一个小题目,下面这则公式,朋友们可以看懂吗?



欢迎给我私信留言哦!


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

-END-


我就知道你“在看”

推荐阅读

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多