Excel中的最強助攻——FIND函數(shù)
?
作者:壹仟伍佰萬來源:部落窩教育發(fā)布時間:2019-12-31 17:21:21點擊:10684
編按:
哈嘍,大家好!今天是部落窩函數(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-9這10個數(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:
相關推薦:
模糊包含查找《VLOOKUP&LOOKUP雙雄戰(zhàn)(一):VLOOKUP的漂亮開局》
提取手機號碼《3分鐘,帶你看懂提取手機號碼的經(jīng)典公式套路》
最熱教程
- 像綠皮火車一樣長像珠穆拉瑪峰一樣高的Excel表怎么操作才方便?
- Power Query實戰(zhàn):按指定次數(shù)遞增數(shù)據(jù)
- 2019年全網(wǎng)最全—excel提取身份證信息合集?。ńㄗh收藏)-下篇
- 明明沒有重復,Excel卻判定數(shù)據(jù)重復,這是怎么回事?
- 文本格式的求和,及求和中最容易出現(xiàn)的問題解疑
- 致命缺陷:不懂一維表!
- 函數(shù)組合思維,你有嗎?
- 學會這2個公式,整理考勤數(shù)據(jù)只要一分鐘
- 就算被說是拍馬屁也成,今天你應該這樣發(fā)Excel報表……
- 如何計算Excel單元格中的算式,四種求和方法請收好!