送人玫瑰,手有余香,请将文章分享给更多朋友 动手操作是熟练掌握EXCEL的最快捷途径! 【置顶公众号】或者【设为星标】及时接收更新不迷路 小伙伴们好,今天要和大家分享一道数据提取的问题。之所以要分享这道题目,还是要和大家再次强调规范数据录入的重要性。 来一起看看原题吧。 要求使用公式将名字后面的房号提取出来。除了使用CTRL+E外,公式书写还是有点小麻烦的。 CTRL+E 在单元格B2中输入希望提取的字符串后,同时按下CTRL+E键。 观察一下这道题目的源数据。名字在中间,两侧分别是日期和房号。要想提取到房号,就要首先定位到最后一个汉字。 在单元格B2中输入公式“=MIDB(MID(A2,MATCH(2,LENB(MID(A2,ROW($1:$20),1)),),100),SEARCHB("?",MID(A2,MATCH(2,LENB(MID(A2,ROW($1:$20),1)),),100)),100)”,三键回车并向下拖曳即可。 思路:
从这个题目中我们可以看出,这个公式书写还是有些复杂的。但如果在数据录入的时候就能做到分列录入,就不会有后面这些麻烦了。 上面的公式还是有些复杂了。还有更简洁的答案吗?答案是肯定的! 在单元格B2中输入公式“=TRIM(VLOOKUP(" *",RIGHTB(A2,ROW($1:$50)),1,))”,三键回车并向下拖曳即可。 一句话解释: 这个公式最核心的部分就是利用RIGHTB函数从右向左依次提取字符。由于RIGHTB函数是提取字节数的,而汉字是两个字节,当遇到第一个汉字时它提取第一个字节是提取不出来的,所以返回一个空格。因此在RIGHTB所提取的字符串中有且一定有一个是“空格+数字部分”的,正好可以利用VLOOKUP函数抓取。 下面这个函数也非常有新意。 单元格B2中输入公式“=RIGHT(A2,MATCH(1=1,LEFT(RIGHT(A2,ROW($1:$99)),1)>="吖",0)-1)”,三键回车并向下拖曳即可。 一句话解释: "吖"这个汉字在EXCEL中是非常小的一个汉字。利用LEFT/RIGHT函数的组合将字符串中的每一个字符都提取出来和"吖"比较,再用MATCH函数来定位最后一个汉字的位置。接下来就可以提取希望的字符串了。 本期内容练习文件提取方式: 链接:https://pan.baidu.com/s/1kHrX6cxStRyekuF3PEmNSw 提取码:cjjj -END- 长按下方二维码关注EXCEL应用之家 面对EXCEL操作问题时不再迷茫无助 我就知道你“在看” |
|