编按:哈喽,大家好!今天是部落窝函数课堂的第7课,我们将一起来认识FIND函数!对于FIND函数,相信大家或多或少都会有一点印象,在之前的《3分钟,带你看懂提取手机号码的经典公式套路》和《用GET。WORKBOOK函数实现excel批量生成带超链接目录且自动更新》等教程中,都使用过它,今天我们就一起深入了解一下这个函数! FIND函数用于返回字符串在另一个字符串中出现的起始位置区分大小写。 乍看似乎没有多厉害,其实它和MATCH函数有点类似,都属于辅助函数,就是单拎出来,不怎么厉害,但是很多大佬函数都要靠它,才能发挥出巨大的作用。 结构为:FIND(要找什么,在哪里找,从字符串中的第几个位置处开始找)。 来几个栗子 一、基本用法 1。找“窝”在A2单元格文本“部落窝教育”中的位置。 B2单元格公式: FIND(窝,A2) 当FIND函数的第一参数为文本时,需在其两端加上英文的双引号。当FIND函数的第三参数被省略时,默认参数值为1,即从字符串中的起始位置开始查找。 同时,第一参数也可引用单元格。 2。找“a”在A3单元格文本“AabBCC”中的位置。 B3单元格公式: FIND(,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,A2:A7)),A2:A7) 使用FIND函数查找D2单元格文本“护甲”在A2:A7中的每个单元格文本中出现的位置。包含“护甲”的单元格会返回一个数字,不包含“护甲”的单元格则会返回错误值VALUE!。 再用0除以FIND函数的返回值,得到一组由一个0和多个VALUE!组成新的查找区域。 由于LOOKUP的查找值1始终大于这组数据中的最大值0,即查找值大于查找区域中的值。根据二分法原理,LOOKUP函数将返回最接近查找值且小于查找值的数所对应的单元格,即A6单元格文本“深圳市护甲生物科技有限公司”。 对LOOKUP函数还不是很熟悉的小伙伴,可以查看往期教程《VLOOKUPLOOKUP双雄战(一):VLOOKUP的漂亮开局》 2。提取姓名和电话号码 相信下面的数据源,小伙伴们在工作中应该都遇到过。由于数据源的不规范,对后期的数据整理,将造成极大的不便,这里我们需要分别提取出姓名和对应的电话号码。 每组电话号码和姓名的位置并非都是一样的,所以就不能用分列了,那应该怎么解决呢? 在C2单元格输入公式: MID(A2,MIN(FIND(ROW(1:10)1,A20123456789)),11) 这是一个数组函数,输入公式后需要使用CTRLSHIFTENTER三键结束。 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},刚好是阿拉伯数字的09。 A20123456789就是尹流138000238320123456789。FIND(ROW(1:10)1,A20123456789)意思就是在尹流138000238320123456789中,分别找09这十个数字在其中的位置。因为位置序号最小的数字,即为号码字段开始的第一个字符。所以我们用MIN函数判断数字在字符串中最小的位置,即为数字开始的位置,作为MID函数的第二参数。最后再用MID函数提取出11位数字即为我们需要的电话号码。 说到这里,有的小伙伴可能会好奇,为什么要让A2连上数字0123456789?这是因为不可能所有的电话号码都完整的包含09这10个数字,当没有在A2单元格中找到对应数字时,FIND函数就会返回VALUE!错误,整个公式就失去效用。所以为了避免这种情况,我们需要在A2后连上数字0123456789。 理解了这一点后,为了让公式更加简洁,我们还可以将公式变为: MID(A2,MIN(FIND(ROW(1:10)1,A2519)),11) 这次A2后面连接的不是09的阿拉伯数字,而是简单的519。其实原理还是一样的,5190。2631578947,这个结果刚好包含了09十个数字,以后我们简化公式,就可以这样写啦 通过上一步的运算,我们已经提取出了完整的电话号码,接下来,只需要用SUBSTITUTE函数在数据区域中,将提取出的电话号码替换为空,就行了! 在B2单元格输入公式: SUBSTITUTE(A2,C2,) 这样看来,FIND函数是不是显得格外重要呢?赶紧练习一下吧! 部落窝教育FIND函数的辅助功能 原创:壹仟伍佰万部落窝教育(未经同意,请勿转载)