当前位置:首页 > VBA&EXCEL > VLOOKUP函数变态用法,74.2%的人不知道

VLOOKUP函数变态用法,74.2%的人不知道

九天狼6年前 (2019-05-18)VBA&EXCEL3212

20190518232320_92006.jpg1434620293189274.png

说正事,别拍砖,快看题:


如上图所示,是某小区多名业主的信息表。

如诸君所见,A列是业主的姓名,B列是一些杂乱的信息。

要求在C列,提取出B列的手机号码。

B列的信息真是奇葩,除了手机号码,还有职业,有婚姻状况,有爱好,有杂感,有病情——

这是谁胡编乱造?也太有水平了,真是让人不得不佩服……

——暂停几分钟再向下看,请先使用VLOOKUP解题儿吧。


暂停回来,咱们看用到的公式:

=VLOOKUP(0,MID(B2,ROW($1:$99),11)*{0,1},2,0)

在C2单元格输入上面的数组公式,按住Ctrl和Shift键不放,再按Enter键,向下复制公式。


简单说下公式的含义和解题的思路:

我们知道手机号码是由11位数字构成的。

MID(B2,ROW($1:$99),11)部分,MID函数依次从B2的第1、2、3、4……直至99个位置,提取长度为11位的字符,然后分别乘以0和1,即常量数组{0,1}。

以C2单元格中祝洪忠童鞋的信息为例:

如果MID函数的结果为文本,比如“爱吃鱼刺不爱吃鱼真傻”,那么乘以{0,1}后,结果为错误值{ #VALUE!, #VALUE!};

如果MID函数的结果为数值,比如18359282475,结果为{0,18359282475}。

由此建立了一个2列99行的内存数组,作为VLOOKUP函数的查询区域。

VLOOKUP用0作为查找值,采用精确匹配的方式,在以上内存数组的第一列查询首个0出现的位置,并且返回相对应的内存数组第二列的结果,于是便得到了手机号码。

结果如下:

1434620342881601.png

公式多奇妙,试过才知道。有的小伙伴可能对计算过程还是懵懵懂懂,这也没关系,可以先收藏一下,万一哪天遇到了这样奇葩的数据,就要拿出变态的方法来对付了。

好了,今天的内容就是这样吧,祝各位一周好心情!

本文源自微信公众号:VBA编程学习与实践

如果内容对你有用,请花费几秒钟给个评论!

由于评论审核机制,可能您的评论暂时不可见,不影响查看回复可见的内容!

扫描二维码推送至手机访问。

版权声明:本文由云淡风轻Mr.Liu发布,如需转载请注明出处。

本文链接:https://nylmj.cn/post/92.html

相关文章

VBA常用小代码目录

VBA常用小代码目录

更多实用VBA小代码,请持续关注本公众号,设定中的小代码系列一共有108集哦~0,工作表处理:(点击目录,即可跳转到相关文章,不用回复关键词)VBA常用小代码001:一键生成带超链接的工作表目录VBA...

这个函数牛到不行了,7.53%的人竟然还不会用

这个函数牛到不行了,7.53%的人竟然还不会用

小伙伴们好啊,今天介绍一个还有7.53%的人不认识的函数:AGGREGATEAGGREGATE函数用法与SUBTOTAL函数类似,但在功能上比SUBTOTAL函数更加强大,不仅可以实现诸如SUM、AV...

【Excel VBA】批量将工作表转换为独立工作簿

【Excel VBA】批量将工作表转换为独立工作簿

有时候 有时候 我会相信一切有尽头……相聚离开都有时候 没有什么会永垂不朽……有时,我们需要将一个工作簿里的每一张工作表,另存为单独的工作薄;如果只是一两张工作表,我们手工操作就挺好的,可如果是若干张...

中括号在VBA编程中的这些用法,您知道几个?

中括号在VBA编程中的这些用法,您知道几个?

我们今天换换口味,不聊代码实例,聊一点VBA编程中的小知识,中括号[]在VBA编程中的几种用法……第1种用法,应该是大家比较熟悉的,引用单元格或单元格区域。例:[a1]、[a:a]等。第2种用法,也是...

【Excel函数篇】21个最常用的日期函数组合

【Excel函数篇】21个最常用的日期函数组合

日期在数据分析中常常是极其重要的一个维度,今天整理了21个最常用的日期函数组合,分需~1、=TODAY()计算当前的系统日期2、=NOW()计算当前系统日期和时间3、= NOW()-TODAY()计算...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。