二维码 购物车
部落窝在线教育欢迎您!

Excel中的最强助攻——FIND函数

 

作者:壹仟伍佰万来源:部落窝教育发布时间:2019-12-31 17:21:21点击:10788

分享到:
0
收藏    收藏人气:0人
版权说明: 原创作品,禁止转载。

编按:

哈喽,大家好!今天是部落窝函数课堂的第7课,我们将一起来认识FIND函数!对于FIND函数,相信大家或多或少都会有一点印象,在之前的3分钟,带你看懂提取手机号码的经典公式套路》和《用GET.WORKBOOK函数实现excel批量生成带超链接目录且自动更新》等教程中,都使用过它,今天我们就一起深入了解一下这个函数!

 

FIND函数用于返回字符串在另一个字符串中出现的起始位置<区分大小写>

 

乍看似乎没有多厉害,其实它和MATCH函数有点类似,都属于辅助函数,就是单拎出来,不怎么厉害,但是很多大佬函数都要靠它,才能发挥出巨大的作用。

 

结构为:=FIND(要找什么,在哪里找,从字符串中的第几个位置处开始找)

 

来几个栗子~

 


一、基本用法

 


1.找“窝”在A2单元格文本部落窝教育中的位置。

 

 

B2单元格公式:

=FIND("",A2)

 

FIND函数的第一参数为文本时,需在其两端加上英文的双引号。当FIND函数的第三参数被省略时,默认参数值为1,即从字符串中的起始位置开始查找。

 

同时,第一参数也可引用单元格。

 

 

2.找“a”在A3单元格文本“AabBCC”中的位置。

 

 

B3单元格公式:

=FIND("a",A3)

 

FIND函数可以区分大小写,返回字母所在的具体位置。这一点与不区分大写查找字符串位置的SEARCH SEARCHB 函数不同。

 

3.找“*”在A4单元格文本****中的位置。

 

 

B4单元格公式:

=FIND("*",A4)

 

注意:由于FIND函数的第一参数不支持通配符“*,所以这里只把“*”当成普通字符查找,返回2。(如果支持通配符的话,这里应该返回1,因为*代表任意多个字符串。)

 

4.FIND的第一参数为空。

 

如果FIND函数的第一参数被省略或者为空文本(即""),并且省略第三参数时,FIND函数返回1;若存在第三参数,FIND函数会返回第三参数的值。

 

 

报错提示:

 

 

好了,看了这么多FIND函数的基础知识,相信大家已经开始摩拳擦掌了,下面我们就结合大佬函数,感受一下FIND函数的魅力!

 


二、扩展应用

 


1.通过简称找全称

 

相信很多小伙伴都遇到过这个问题,如下图所示,我们需要根据D2单元格中的公司简称,找到所对应的公司全称。

 


 

E2单元格输入公式:

=LOOKUP(1,0/(FIND(D2,$A$2:$A$7)),$A$2:$A$7)

 

使用FIND函数查找D2单元格文本“护甲”在$A$2:$A$7中的每个单元格文本中出现的位置。包含“护甲”的单元格会返回一个数字,不包含“护甲”的单元格则会返回错误值#VALUE!

 


 

再用0除以FIND函数的返回值,得到一组由一个0和多个#VALUE!组成新的查找区域。

 


 

由于LOOKUP的查找值1始终大于这组数据中的最大值0,即查找值大于查找区域中的值。根据二分法原理,LOOKUP函数将返回最接近查找值且小于查找值的数所对应的单元格,即A6单元格文本“深圳市护甲生物科技有限公司”。

 

LOOKUP函数还不是很熟悉的小伙伴,可以查看往期教程《VLOOKUP&LOOKUP双雄战(一):VLOOKUP的漂亮开局

 

2.提取姓名和电话号码

 

相信下面的数据源,小伙伴们在工作中应该都遇到过。由于数据源的不规范,对后期的数据整理,将造成极大的不便,这里我们需要分别提取出姓名和对应的电话号码。

 

 

每组电话号码和姓名的位置并非都是一样的,所以就不能用分列了,那应该怎么解决呢?

 

C2单元格输入公式:

=MID(A2,MIN(FIND(ROW($1:$10)-1,A2&"0123456789")),11)

 

这是一个数组函数,输入公式后需要使用CTRL+SHIFT+ENTER三键结束。

 

 

ROW($1:$10)会得到{1;2;3;4;5;6;7;8;9;10}10个数字,而减去1,就会得到{0;1;2;3;4;5;6;7;8;9},刚好是阿拉伯数字的0-9

 

 

A2&"0123456789"就是"尹流138000238320123456789"FIND(ROW($1:$10)-1,A2&"0123456789")意思就是在"尹流138000238320123456789"中,分别找0-9这十个数字在其中的位置。因为位置序号最小的数字,即为号码字段开始的第一个字符。所以我们用min函数判断数字在字符串中最小的位置,即为数字开始的位置,作为MID函数的第二参数。最后再用MID函数提取出11位数字即为我们需要的电话号码。

 

说到这里,有的小伙伴可能会好奇,为什么要让A2连上数字"0123456789"?这是因为不可能所有的电话号码都完整的包含0-910个数字,当没有在A2单元格中找到对应数字时,FIND函数就会返回#VALUE!错误,整个公式就失去效用。所以为了避免这种情况,我们需要在A2后连上数字"0123456789"

 

理解了这一点后,为了让公式更加简洁,我们还可以将公式变为:

=MID(A2,MIN(FIND(ROW($1:$10)-1,A2&5/19)),11)

 

 

这次A2后面连接的不是0-9的阿拉伯数字,而是简单的5/19。其实原理还是一样的,5/19=0.2631578947,这个结果刚好包含了0-9十个数字,以后我们简化公式,就可以这样写啦~

 

 

通过上一步的运算,我们已经提取出了完整的电话号码,接下来,只需要用SUBSTITUTE函数在数据区域中,将提取出的电话号码替换为空,就行了!

 

B2单元格输入公式:

=SUBSTITUTE(A2,C2,"")

 

 

这样看来,FIND函数是不是显得格外重要呢?赶紧练习一下吧!

 

本文配套的练习课件请加入QQ群:747953401下载。

Excel高手,快速提升工作效率,部落窝教育《一周Excel直通车》视频和《Excel极速贯通班》直播课全心为你!

扫下方二维码关注公众号,可随时随地学习Excel

IMG_256

相关推荐:

模糊包含查找VLOOKUP&LOOKUP双雄战(一):VLOOKUP的漂亮开局

提取手机号码3分钟,带你看懂提取手机号码的经典公式套路

制作目录用GET.WORKBOOK函数实现excel批量生成带超链接目录且自动更新