excel函數(shù)組合技巧:最強(qiáng)助攻FIND函數(shù)的輔助應(yīng)用

編按:哈嘍,大家好!今天是部落窩函數(shù)課堂的第7課,我們將一起來(lái)認(rèn)識(shí)FIND函數(shù)!對(duì)于FIND函數(shù),相信大家或多或少都會(huì)有一點(diǎn)印象,在之前的《3分鐘,帶你看懂提取手機(jī)號(hào)碼的經(jīng)典公式套路》和《用GET.WORKBOOK函數(shù)實(shí)現(xiàn)excel批量生成帶超鏈接目錄且自動(dòng)更新》等教程中,都使用過(guò)它,今天我們就一起深入了解一下這個(gè)函數(shù)!
FIND函數(shù)用于返回字符串在另一個(gè)字符串中出現(xiàn)的起始位置<區(qū)分大小寫>。?
乍看似乎沒有多厲害,其實(shí)它和MATCH函數(shù)有點(diǎn)類似,都屬于輔助函數(shù),就是單拎出來(lái),不怎么厲害,但是很多大佬函數(shù)都要靠它,才能發(fā)揮出巨大的作用。?
結(jié)構(gòu)為:=FIND(要找什么,在哪里找,從字符串中的第幾個(gè)位置處開始找)。?
來(lái)幾個(gè)栗子~?
一、基本用法
1.找“窩”在A2單元格文本“部落窩教育”中的位置。?

B2單元格公式:
=FIND("窩",A2)?
當(dāng)FIND函數(shù)的第一參數(shù)為文本時(shí),需在其兩端加上英文的雙引號(hào)。當(dāng)FIND函數(shù)的第三參數(shù)被省略時(shí),默認(rèn)參數(shù)值為1,即從字符串中的起始位置開始查找。
同時(shí),第一參數(shù)也可引用單元格。

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

?B3單元格公式:
=FIND("a",A3)?
FIND函數(shù)可以區(qū)分大小寫,返回字母所在的具體位置。這一點(diǎn)與不區(qū)分大寫查找字符串位置的SEARCH?和?SEARCHB?函數(shù)不同。
?
3.找“*”在A4單元格文本“部*落*窩*教*育”中的位置。?

B4單元格公式:
=FIND("*",A4)?
注意:由于FIND函數(shù)的第一參數(shù)不支持通配符“*”,所以這里只把“*”當(dāng)成普通字符查找,返回2。(如果支持通配符的話,這里應(yīng)該返回1,因?yàn)?代表任意多個(gè)字符串。)?
4.當(dāng)FIND的第一參數(shù)為空。?
如果FIND函數(shù)的第一參數(shù)被省略或者為空文本(即""),并且省略第三參數(shù)時(shí),F(xiàn)IND函數(shù)返回1;若存在第三參數(shù),F(xiàn)IND函數(shù)會(huì)返回第三參數(shù)的值。?

報(bào)錯(cuò)提示:?

好了,看了這么多FIND函數(shù)的基礎(chǔ)知識(shí),相信大家已經(jīng)開始摩拳擦掌了,下面我們就結(jié)合大佬函數(shù),感受一下FIND函數(shù)的魅力!?
二、擴(kuò)展應(yīng)用
1.通過(guò)簡(jiǎn)稱找全稱?
相信很多小伙伴都遇到過(guò)這個(gè)問(wèn)題,如下圖所示,我們需要根據(jù)D2單元格中的公司簡(jiǎn)稱,找到所對(duì)應(yīng)的公司全稱。?

在E2單元格輸入公式:
=LOOKUP(1,0/(FIND(D2,$A$2:$A$7)),$A$2:$A$7)?
使用FIND函數(shù)查找D2單元格文本“護(hù)甲”在$A$2:$A$7中的每個(gè)單元格文本中出現(xiàn)的位置。包含“護(hù)甲”的單元格會(huì)返回一個(gè)數(shù)字,不包含“護(hù)甲”的單元格則會(huì)返回錯(cuò)誤值#VALUE!。

再用0除以FIND函數(shù)的返回值,得到一組由一個(gè)0和多個(gè)#VALUE!組成新的查找區(qū)域。?

由于LOOKUP的查找值1始終大于這組數(shù)據(jù)中的最大值0,即查找值大于查找區(qū)域中的值。根據(jù)二分法原理,LOOKUP函數(shù)將返回最接近查找值且小于查找值的數(shù)所對(duì)應(yīng)的單元格,即A6單元格文本“深圳市護(hù)甲生物科技有限公司”。?
對(duì)LOOKUP函數(shù)還不是很熟悉的小伙伴,可以查看往期教程《VLOOKUP&LOOKUP雙雄戰(zhàn)(一):VLOOKUP的漂亮開局》
?
2.提取姓名和電話號(hào)碼?
相信下面的數(shù)據(jù)源,小伙伴們?cè)诠ぷ髦袘?yīng)該都遇到過(guò)。由于數(shù)據(jù)源的不規(guī)范,對(duì)后期的數(shù)據(jù)整理,將造成極大的不便,這里我們需要分別提取出姓名和對(duì)應(yīng)的電話號(hào)碼。?

每組電話號(hào)碼和姓名的位置并非都是一樣的,所以就不能用分列了,那應(yīng)該怎么解決呢??
在C2單元格輸入公式:
=MID(A2,MIN(FIND(ROW($1:$10)-1,A2&"0123456789")),11)?
這是一個(gè)數(shù)組函數(shù),輸入公式后需要使用CTRL+SHIFT+ENTER三鍵結(jié)束。?

?ROW($1:$10)會(huì)得到{1;2;3;4;5;6;7;8;9;10},10個(gè)數(shù)字,而減去1,就會(huì)得到{0;1;2;3;4;5;6;7;8;9},剛好是阿拉伯?dāng)?shù)字的0-9。?

A2&"0123456789"就是"尹流138000238320123456789"。FIND(ROW($1:$10)-1,A2&"0123456789")意思就是在"尹流138000238320123456789"中,分別找0-9這十個(gè)數(shù)字在其中的位置。因?yàn)槲恢眯蛱?hào)最小的數(shù)字,即為號(hào)碼字段開始的第一個(gè)字符。所以我們用MIN函數(shù)判斷數(shù)字在字符串中最小的位置,即為數(shù)字開始的位置,作為MID函數(shù)的第二參數(shù)。最后再用MID函數(shù)提取出11位數(shù)字即為我們需要的電話號(hào)碼。?
說(shuō)到這里,有的小伙伴可能會(huì)好奇,為什么要讓A2連上數(shù)字"0123456789"?這是因?yàn)椴豢赡芩械碾娫捥?hào)碼都完整的包含0-9這10個(gè)數(shù)字,當(dāng)沒有在A2單元格中找到對(duì)應(yīng)數(shù)字時(shí),F(xiàn)IND函數(shù)就會(huì)返回#VALUE!錯(cuò)誤,整個(gè)公式就失去效用。所以為了避免這種情況,我們需要在A2后連上數(shù)字"0123456789"。?
理解了這一點(diǎn)后,為了讓公式更加簡(jiǎn)潔,我們還可以將公式變?yōu)椋?/span>
=MID(A2,MIN(FIND(ROW($1:$10)-1,A2&5/19)),11)?

這次A2后面連接的不是0-9的阿拉伯?dāng)?shù)字,而是簡(jiǎn)單的5/19。其實(shí)原理還是一樣的,5/19=0.2631578947,這個(gè)結(jié)果剛好包含了0-9十個(gè)數(shù)字,以后我們簡(jiǎn)化公式,就可以這樣寫啦~?

通過(guò)上一步的運(yùn)算,我們已經(jīng)提取出了完整的電話號(hào)碼,接下來(lái),只需要用SUBSTITUTE函數(shù)在數(shù)據(jù)區(qū)域中,將提取出的電話號(hào)碼替換為空,就行了!?
在B2單元格輸入公式:
=SUBSTITUTE(A2,C2,"")?

這樣看來(lái),F(xiàn)IND函數(shù)是不是顯得格外重要呢?趕緊練習(xí)一下吧!
****部落窩教育-FIND函數(shù)的輔助功能****
原創(chuàng):壹仟伍佰萬(wàn)/部落窩教育(未經(jīng)同意,請(qǐng)勿轉(zhuǎn)載)
更多教程:部落窩教育(www.itblw.com)
微信公眾號(hào):exceljiaocheng