Excel Find函數與FindB函數使用方法,含用數組一次查找多個值

2021-01-10 電腦技術角

在 Excel 中,查找指定字符在源字符串中的位置,既可以用 Find函數,也可以用 FindB函數,它們都有三個參數,所不同的是,前者把漢字、字母和數字都算一個字符,後者把漢字算兩個字節,數字和字母算一個字節。以下就是 Excel Find函數與FindB函數的使用方法及實例,含基本使用方法、在多行中動態查找方法和用數組一次查找多個值實例,操作所用版本均為 Excel 2016。

一、Find函數和FindB函數語法

(一)Find函數

表達式:FIND(Find_Text, Within_Text, [Start_Num])

中文表達式:FIND(查找文本, 源文本, [查找開始位置])

(二)FindB函數

表達式:FINDB(Find_Text, Within_Text, [Start_Num])

中文表達式:FINDB(查找文本, 源文本, [查找開始位置])

(三)說明:

1、如果 Find_Text 為空(""),則返回 1;另外,Find_Text 不能包含任何通配符。

2、Start_Num 為可選項,如果省略,則默認從第一個字符開始查找。Start_Num 小於等於 0 與大於 Within_Text 長度,Find 和 FindB 都返回 #VALUE! 錯誤值。

3、Find 和 FindB 都區分大小寫,也就是同一個字母的大寫和小寫算兩個字母。Find 的 Start_Num 無論是漢字、字母還是數字都以一個字符算;而 FindB 的 Start_Num 漢字以兩個字節算,字母和數字以一個字節算。

二、Find函數的使用方法及實例

(一) Find_Text 為空("")且省略 Start_Num 的實例

1、選中 B1 單元格,輸入公式 =FIND("",A1),按回車,返回 1;雙擊 B1,把公式改為 =FIND("",A1,4),按回車,返回 4;操作過程步驟,如圖1所示:

圖1

2、公式說明:第一個公式 =FIND("",A1) 查找文本為空,默認返回第一個字符的位置,所以返回 1;第二個公式 =FIND("",A1,4),查找文本也為空,但從第 4 個字符開始查找,所以返回在「Excel 2016 教程」中指定的位置 4。

3、查找空格(" ")

A、把公式 =FIND(" ",A1,4) 複製到 B2 單元格,如圖2所示:

圖2

B、按回車,返回 6,正是「Excel 2016 教程」中第一個空格的位置,如圖3所示:

圖3

(二)Start_Num 小於等於 0 與大於 Within_Text 長度的實例

1、把公式 =FIND("2016",A1,0) 複製到 B1 單元格,按回車,返回 #VALUE! 錯誤;把公式改為 =FIND("2016",A1,15),按回車,也返回 #VALUE! 錯誤;操作過程步驟,如圖4所示:

2、說明 Start_Num 小於等於 0 與大於 Within_Text 長度,Find函數都返回 #VALUE! 錯誤。

(三)Find函數區分大小寫的實例

1、把公式 =FIND("e",A1) 複製到 B1 單元格,按回車,返回 4;把公式改為 =FIND("E",A1),按回車,返回 1,如圖5所示:

2、查找位置都默認從 1 開始,但查找小寫 e 時,返回的 4,正是「Excel 2016 教程」中小寫 e 的位置;查找大寫 E 時,返回的是 1,正是「Excel 2016 教程」中大寫 E 位置。

(四)查找不存的文本返回錯誤處理

1、把公式 =FIND("2013",A1) 複製到 B1 單元格,按回車,返回 #VALUE! 錯誤,因為「Excel 2016 教程」沒有 2013,操作過程步驟,如圖6所示:

圖6

2、如果用 =FIND("2013",A1) 作為 if 的條件,返回 #VALUE! 錯誤,if 將無法判斷真假,如這個公式 =IF(FIND("2013",A1),"2013","2016"),如圖7所示:

3、如果條件 FIND("2013",A1) 為真將返回 2013,否則返回 2016,但由於返回 #VALUE! 錯誤,導致最終也返回 #VALUE! 錯誤,如圖8所示:

圖8

4、只要加一個判斷 Find 返回值是否為數字的 IsNumber函數,if 就能返回正確值,把公式改為 =IF(ISNUMBER(FIND("2013",A1)),"2013","2016"),按回車,返回 2016,操作過程步驟,如圖9所示:

圖9

5、由於 FIND("2013",A1) 返回 #VALUE! 錯誤,#VALUE! 不是數字,因此 IsNumber(#VALUE!) 返回假,if 的條件為假,所以返回 2016。

(五)用 Mid 與 Find 截取指定字符

1、從指定字符截取到末尾。假如要從「Excel 2016 教程」中截取 2016 以後的所有文字。把公式 =MID(A1,FIND("2016",A1),10) 複製到 B1 單元格,按回車,返回「2016 教程」,操作過程步驟,如圖10所示:

圖10

2、截取中間指字符串。假如要從「Excel 2016 數據透視表教程」中截取「數據透視表」。把公式 =MID(A1,FIND("數據",A1),FIND("透視表",A1,FIND("數據",A1)) +3-FIND("數據",A1)) 複製到 B1 單元格,按回車,返回「數據透視表」,操作過程步驟,如圖11所示:

圖11

公式說明:

A、公式中第一個 FIND("數據",A1) 用於返回要截取字符串的開始位置。

B、FIND("透視表",A1,FIND("數據",A1))+3-FIND("數據",A1) 用於返回要截取字符串的長度,先用 FIND("透視表",A1,FIND("數據",A1)) 返回要查找字符串「數據透視表」最後三個字所在位置,由於查找「透視表」是三個字,而 Find 返回「透視表」的是「透」字的位置」,因此要加 3;然後減掉要截取字符串開始字符「數據」所在位置,從而返回要截取字符串「數據透視表」。

提示:如果要從文字很多的段落中截取指定字符,FIND("透視表",A1,FIND("數據",A1)) 中才用 FIND("數據",A1) 找到查找開始位置,否則開始位置從 1 開始即可,這樣有利於提高效率。

(六)用 Find函數在多行中動態查找

1、假如要在服裝銷量表的「產品名稱」中查找是否包含「分類」。把公式 =IF(ISERR(FIND($C$2:$C$12,B2)),"不包含","包含") 複製到 G2 單元格,按回車,返回「包含」;把滑鼠移到 G2 右下角的單元格填充柄上,按住左鍵,往下拖,則所經過單元格返回相應值;操作過程步驟,如圖12所示:

圖12

2、公式說明:公式中 $C$2:$C$12 是對 C2 到 C12 的絕對引用,即往下拖時,每次從 C2 到 C12 中返回一個值;B2 是相對引用,往下拖時會變為 B3、B4、……;FIND($C$2:$C$12,B2) 是在 C2 中找 B2,往下拖時,B2 變 B3,則在 C3 中找 B3,以此類推;如果沒有找到,Find函數返回 #VALUE! 錯誤;用 IsErr函數判斷是否返回錯誤,如果返回錯誤,則返回「不包含」否則返回「包含」。

(七)Find 用數組一次查找多個值

1、假如要在「Excel 2016 教程」中查找是否包含 0、2、教。把公式 =SUM(ISNUMBER(FIND({0,2,"教"},A1))*1) 複製到 B1 單元格,按回車,返回 3,操作過程步驟,如圖13所示:

圖13

2、公式說明:

A、用 Find 查找多個值,可以用數組,即 FIND({0,2,"教"},A1),表示要在 A1 中查找 0、2、教,查找順序為:從 0 開始查找,每次查找一個,找到返回所在位置,沒有找到返回 #VALUE! 錯誤。

B、FIND({0,2,"教"},A1) 最終返回 {8,7,12},則公式變為 =SUM(ISNUMBER({8,7,12})*1);用 IsNumber 判斷,由於數組中全是數字,所以全返回真,公式變為 =SUM({True,True,True}*1),再把 1 與數組中的每個 True 相乘,由於 True 轉為數值為 1,所以公式變為 =SUM({1,1,1}),最終求和結果為 3。

C、FIND({0,2,"教"},A1) 的意思是,如果 A1 中只有 0、2 或「教」其中之一,則返回 1;如果同時有兩個,則返回 2;如果同時有三個,則返回 3。

三、FindB函數的使用方法及實例

1、把公式 =FINDB("2016",A1) 複製到 B1 單元格,按回車,返回 7;雙擊 B1 單元格,把公式改為 =FINDB("教",A1,6),按回車,返回 12;再次雙擊 B1 單元格,把公式改為 =FINDB("程",A1,6),按回車,返回 14;操作過程步驟,如圖14所示:

2、說明:第一個公式 =FINDB("2016",A1) 返回 7 ,說明,FindB函數把每個字母算一個字節;第二個公式 =FINDB("教",A1,6) 返回 12,說明 FindB函數把每字母和數字都算一個字節;第三個公式 =FINDB("程",A1,6) 返回 14,說明 FindB函數把每個漢字算兩個字節。除操作中的實例外,FindB函數的其它用法與Find函數相同。

相關焦點

  • Excel Choose函數的使用方法,含與Match與VLookUp配合使用的實例
    除可以用單個數字作索引號外,還可以用數組;用數組作索引號常常在和Match函數或VLookUp函數配合使用時出現,以下列舉了 Excel Choose函數使用方法的6大實例,其中就包含有和Match函數或VLookUp函數配合使用的實例,實例操作所用版本均為 Excel 2016。
  • excel中的經典查找引用函數之lookup函數的使用
    excel表格的眾多函數中,我們常用的查找引用函數大致有3個,分別是有縱向查找功能的vlookup函數、有橫向查找功能的hlookup函數和可以任意多條件查找引用的lookup函數。下面我們來介紹lookup函數的用法。
  • Excel Substitute函數使用方法,含嵌套一次替換多個不同字符實例
    在 Excel 中,一共有兩個替換字符的函數,一個是Substitute函數,另一個是Replace函數;前者是用新字符替換舊字符,後者是用新字符替換指定字符數。Substitute函數既可以替換源文本中所有指定字符,又可以替換某個指定字符,並且還能嵌套使用以實現一次替換多個不同字符。
  • Excel函數總結二:VLOOKUP、LARGE、RANK、LEFT、MID和FIND
    熟悉函數公式和使用方法,大多數人都是可以掌握的。今日先總結VLOOKUP、LARGE、RANK、LEFT、MID和FIND六個函數。更多函數總結平臺將在近期陸陸續續更新,敬請期待!當VLOOKUP函數第一參數省略查找值時,表示用0查找。table_array:查詢值所處的區域,使用對區域或區域名稱的引用,有時需要跨表格查找。col_index_num:返回第幾列內容,col_index_num為 1 時,返回 table_array 第一列的數值,col_index_num 為 2 時,返回table_array 第二列的數值,以此類推。
  • 這個excel查找函數也很重要,index函數的使用方法
    我們之前學過幾個excel查找函數,分別是vlookup函數和hlookup函數以及match函數,這次我們還要學習另外一個查找函數,這個查找函數就是index函數,index函數是用來引用我們所需要的信息,主要分連續區域和非連續區域內的引用兩種,連續區域裡使用index公式是=index
  • lookup函數的使用方法,含向量和數組形式實例及與vlookup的區別
    以下是就 Excel lookup函數的使用方法,列舉了向量形式和數組形式兩種實例,並且分享了 lookup 與 vlookup 的區別,實例中操作所用版本均為 Excel 2016。一、lookup函數向量形式使用方法lookup函數向量形式是在一行或一列中查找值,返回另一行或另一列對應位置的值。
  • Excel函數公式:萬能查找函數Lookup函數的神應用和技巧
    提起查找函數,大家第一時間想到的肯定是Vlookup,其實大多數人不知道,Lookup才是查找函數之王,它幾乎能高效地實現Vlookup函數的所有功能,部分功能是Vlookup函數無法比擬的。一、語法結構和基本使用方法。
  • vlookup函數使用匯總大全!
    大家都知道,在使用excel時,vlookup函數的使用頻率非常大,之前在網上看到這樣的一句話,不會vlookup函數就不要說會excel,那麼今天就帶領小夥伴們一起去了解它吧,看看在工作中都一般用於哪些場景呢?
  • Excel函數large、與數組在實際案例中的聯合運用
    在講述這些數組計算的過程,我們也穿插了一些簡單的函數的使用方法,比如函數randbetween、函數sumproduct等,另外由於我們在生活和學習當中可能更習慣於去數值之間的計算,而忽視了對數組計算方法的學習,所以在之前的文章當中,一直在將數值計算和數組計算進行比較。
  • Excel VBA函數篇-3.19大數據時代必備查找技能 萬條數據能奈我何
    當然不可能的啦,excel畢竟還是現在的主流辦公軟體,不管技術上面發展的多麼的高級,畢竟全民都是程式設計師的時代還是非常的遙遠的,並且你也不可能要求領導一定要去學習各種大數據處理知識吧,現在領導更多還是依賴於excel,數據也是集中展示在excel中的,那麼在大數據的衝擊下,excel能夠提升處理速度呢?
  • 一起學JAVA——數組和函數
    如果有一段代碼要使用多次,我們可以給它起個名字,每次使用時通過名字調用,這樣就不用每次都寫一大段代碼了。如果某個函數在執行的時候需要調用者傳入數據,那麼可以定義參數列表,用於接收數據。如果函數運行之後需要返回給調用者數據,那麼需要指定返回值類型,並且用關鍵字return返回。
  • excel怎樣運用VLOOKUP函數與INDEX-MATCH函數進行查找?
    在實際工作中,我們經常使用vlookup函數與index-match函數進行查找,這倆個函數都可以實現查找的功能,下面就基本查找,反向查找,多條件查找對比下這兩個函數的運用方式。index-match函數中先輸入match函數,match函數第一個參數表示查找依據,第二個參數表示查找依據所在的列,第三個參數表示精確匹配,此時顯示查找的數據所在單元格第幾行。外面嵌套index函數,第一個參數表示所在列,第二個參數match表示所在行,此時就實現了查找的目的。
  • excel查找函數應用:如何提取姓名的拼音首字母
    相信大多數小夥伴面對這個問題時,都會蒙圈,可能會想「這應該得用VBA解決吧,函數應該不行吧。」其實呀,這個問題用大家都會的VLOOKUP函數就能搞定,趕緊來看看吧!在某些特殊的情況下,我們可能需要用到拼音首字母。
  • Excel中的單條件計數函數countif
    COUNTIF函數會統計某個區域內符合您指定的單個條件的單元格數量,記得函數返回值是滿足給定條件的單元格的數量。例如,我們可以計算以某個特定字母開頭的所有單元格的數量,或者可以計算包含大於或小於指定數字的所有單元格的數量。
  • Excel函數公式:不一樣的函數學習方法,一看就懂
    在Excel中,當我們遇到困難時,喜歡去看幫助,尤其是函數的語法結構等,但是看了也未必看得懂,如果能用比較通俗易懂的方式來解釋,那將是學習者的福音……下面我們來學習集中常見的函數用法。第一個4為所需要提取值在第4行,第二個4為所需要提取的值在第4列。2、返回B3:E9這個相對範圍內第4行第4列交匯處的值。三、MATCH函數。
  • Excel Column函數和Columns函數的使用方法,含Column($1:$5)實例
    在 Excel 中,Column函數用於返回單元格的列號,一次既可以返回一列的列號,也可以返回多列的列號;而Columns函數作用是返回數組或引用單元格的列數。Column函數通常與Indirect函數、If函數、Index函數、VlookUp函數、SumProduct函數、Mod函數組合使用。
  • vlookup函數的使用方法,含查找多值、以某字開頭的值與近似匹配
    vlookup 是 Excel 中常用的函數之一,它用於查找指定值所對應的另一個值,特別是表格記錄非常多時,用它很快就可以找到想查找的值。用vlookup函數查找時,既可以精確匹配又可以近似匹配。以下將先介紹vlookup函數的作用和函數表示,再列舉vlookup函數的使用方法,最後再分享它的幾個擴展應用實例,包含查找以某字或詞組開頭或結尾值、查找包含某個字或詞組的值,近似匹配和查找指定類下的所有產品價格。實例操作所用版本均為 Excel 2016。
  • excel中的small函數和large函數,與其他函數結合還有這功能!
    在excel中,large函數和small函數用的人比較少,但是用的少並不代表這兩個函數沒有用,反而十分,今天小編就專門寫了這篇文章來介紹一下這兩個函數,一起學習一下吧、一、基本用法。對於large函數和small函數,都只有兩個參數,分別為large(數值區域,返回的第幾個最大值),small(數值區域,返回的第幾個最小值)。
  • excel函數應用技巧:按區間統計個數,就用Frequency
    最簡單、最快速的辦法是用高級函數Frequency。學習更多技巧,請收藏關注部落窩教育excel圖文教程。價格帶分析是一項基礎的數據分析,在某醫藥銷售公司工作的小王,最近就遇上一個這樣的任務……領導給了50個護肝類藥品的價格信息,讓小王統計出每個價格區間的品規數,數據要求如圖所示: 註:表中價格數據為模擬值並非市場實際價格。
  • 必學Excel查找與引用函數,將表格變成智能資料庫(上)
    要想在海量數據中,根據條件查找數值,查找與引用函數必不可少。今天先學會3個函數,明天工作匯報就小露一手。1.使用CHOOSE函數根據序號從列表中選擇對應的內容CHOOSE函數可以使用index_num返回數值參數列表中的數值,使用該函數最多可以根據索引號從254個數值中選擇一個。使用CHOOSE函數可以直接返回value給定的單元格。