二維碼 購物車
部落窩在線教育歡迎您!

Excel中的最強助攻——FIND函數(shù)

?

作者:壹仟伍佰萬來源:部落窩教育發(fā)布時間:2019-12-31 17:21:21點擊:10684

分享到:
0
收藏    收藏人氣:0人
版權說明: 原創(chuàng)作品,禁止轉(zhuǎn)載。

編按:

哈嘍,大家好!今天是部落窩函數(shù)課堂的第7課,我們將一起來認識FIND函數(shù)!對于FIND函數(shù),相信大家或多或少都會有一點印象,在之前的3分鐘,帶你看懂提取手機號碼的經(jīng)典公式套路》和《用GET.WORKBOOK函數(shù)實現(xiàn)excel批量生成帶超鏈接目錄且自動更新》等教程中,都使用過它,今天我們就一起深入了解一下這個函數(shù)!

 

FIND函數(shù)用于返回字符串在另一個字符串中出現(xiàn)的起始位置<區(qū)分大小寫>

 

乍看似乎沒有多厲害,其實它和MATCH函數(shù)有點類似,都屬于輔助函數(shù),就是單拎出來,不怎么厲害,但是很多大佬函數(shù)都要靠它,才能發(fā)揮出巨大的作用。

 

結構為:=FIND(要找什么,在哪里找,從字符串中的第幾個位置處開始找)

 

來幾個栗子~

 


一、基本用法

 


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

 

 

B2單元格公式:

=FIND("",A2)

 

FIND函數(shù)的第一參數(shù)為文本時,需在其兩端加上英文的雙引號。當FIND函數(shù)的第三參數(shù)被省略時,默認參數(shù)值為1,即從字符串中的起始位置開始查找。

 

同時,第一參數(shù)也可引用單元格。

 

 

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

 

 

B3單元格公式:

=FIND("a",A3)

 

FIND函數(shù)可以區(qū)分大小寫,返回字母所在的具體位置。這一點與不區(qū)分大寫查找字符串位置的SEARCH SEARCHB 函數(shù)不同。

 

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

 

 

B4單元格公式:

=FIND("*",A4)

 

注意:由于FIND函數(shù)的第一參數(shù)不支持通配符“*,所以這里只把“*”當成普通字符查找,返回2。(如果支持通配符的話,這里應該返回1,因為*代表任意多個字符串。)

 

4.FIND的第一參數(shù)為空。

 

如果FIND函數(shù)的第一參數(shù)被省略或者為空文本(即""),并且省略第三參數(shù)時,FIND函數(shù)返回1;若存在第三參數(shù),FIND函數(shù)會返回第三參數(shù)的值。

 

 

報錯提示:

 

 

好了,看了這么多FIND函數(shù)的基礎知識,相信大家已經(jīng)開始摩拳擦掌了,下面我們就結合大佬函數(shù),感受一下FIND函數(shù)的魅力!

 


二、擴展應用

 


1.通過簡稱找全稱

 

相信很多小伙伴都遇到過這個問題,如下圖所示,我們需要根據(jù)D2單元格中的公司簡稱,找到所對應的公司全稱。

 


 

E2單元格輸入公式:

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

 

使用FIND函數(shù)查找D2單元格文本“護甲”在$A$2:$A$7中的每個單元格文本中出現(xiàn)的位置。包含“護甲”的單元格會返回一個數(shù)字,不包含“護甲”的單元格則會返回錯誤值#VALUE!。

 


 

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

 


 

由于LOOKUP的查找值1始終大于這組數(shù)據(jù)中的最大值0,即查找值大于查找區(qū)域中的值。根據(jù)二分法原理,LOOKUP函數(shù)將返回最接近查找值且小于查找值的數(shù)所對應的單元格,即A6單元格文本“深圳市護甲生物科技有限公司”。

 

LOOKUP函數(shù)還不是很熟悉的小伙伴,可以查看往期教程《VLOOKUP&LOOKUP雙雄戰(zhàn)(一):VLOOKUP的漂亮開局

 

2.提取姓名和電話號碼

 

相信下面的數(shù)據(jù)源,小伙伴們在工作中應該都遇到過。由于數(shù)據(jù)源的不規(guī)范,對后期的數(shù)據(jù)整理,將造成極大的不便,這里我們需要分別提取出姓名和對應的電話號碼。

 

 

每組電話號碼和姓名的位置并非都是一樣的,所以就不能用分列了,那應該怎么解決呢?

 

C2單元格輸入公式:

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

 

這是一個數(shù)組函數(shù),輸入公式后需要使用CTRL+SHIFT+ENTER三鍵結束。

 

 

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

 

 

A2&"0123456789"就是"尹流138000238320123456789"FIND(ROW($1:$10)-1,A2&"0123456789")意思就是在"尹流138000238320123456789"中,分別找0-9這十個數(shù)字在其中的位置。因為位置序號最小的數(shù)字,即為號碼字段開始的第一個字符。所以我們用min函數(shù)判斷數(shù)字在字符串中最小的位置,即為數(shù)字開始的位置,作為MID函數(shù)的第二參數(shù)。最后再用MID函數(shù)提取出11位數(shù)字即為我們需要的電話號碼。

 

說到這里,有的小伙伴可能會好奇,為什么要讓A2連上數(shù)字"0123456789"?這是因為不可能所有的電話號碼都完整的包含0-910個數(shù)字,當沒有在A2單元格中找到對應數(shù)字時,FIND函數(shù)就會返回#VALUE!錯誤,整個公式就失去效用。所以為了避免這種情況,我們需要在A2后連上數(shù)字"0123456789"。

 

理解了這一點后,為了讓公式更加簡潔,我們還可以將公式變?yōu)椋?/span>

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

 

 

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

 

 

通過上一步的運算,我們已經(jīng)提取出了完整的電話號碼,接下來,只需要用SUBSTITUTE函數(shù)在數(shù)據(jù)區(qū)域中,將提取出的電話號碼替換為空,就行了!

 

B2單元格輸入公式:

=SUBSTITUTE(A2,C2,"")

 

 

這樣看來,FIND函數(shù)是不是顯得格外重要呢?趕緊練習一下吧!

 

本文配套的練習課件請加入QQ群:747953401下載。

Excel高手,快速提升工作效率,部落窩教育《一周Excel直通車》視頻和《Excel極速貫通班》直播課全心為你!

掃下方二維碼關注公眾號,可隨時隨地學習Excel

IMG_256

相關推薦:

模糊包含查找VLOOKUP&LOOKUP雙雄戰(zhàn)(一):VLOOKUP的漂亮開局

提取手機號碼3分鐘,帶你看懂提取手機號碼的經(jīng)典公式套路

制作目錄用GET.WORKBOOK函數(shù)實現(xiàn)excel批量生成帶超鏈接目錄且自動更新