天天看點

Excel常用函數之Find函數

作者:Excel日記本

Find和FINDB函數

  1. 公式解析
  2. 官方說明:函數 FIND 和 FINDB用于在第二個文本串中定位第一個文本串,并傳回第一個文本串的起始位置的值,該值從第二個文本串的第一個字元算起。
  • 這些函數可能并不适用于所有語言。
  • FIND 适用于使用單位元組字元集 (SBCS) 的語言,而 FINDB 适用于使用雙位元組字元集 (DBCS) 的語言。 您的計算機上的預設語言設定對傳回值的影響方式如下:
  • 無論預設語言設定如何,函數 FIND 始終将每個字元(不管是單位元組還是雙位元組)按 1 計數。
  • 當啟用支援 DBCS 的語言的編輯并将其設定為預設語言時,FINDB 會将每個雙位元組字元按 2 計數。 否則,FINDB 會将每個字元按 1 計數。

支援 DBCS 的語言包括日語、中文(簡體)、中文(繁體)以及北韓語。

  1. 文法

FIND(find_text, within_text, [start_num])

FINDB(find_text, within_text, [start_num])

FIND 和 FINDB 函數文法具有下列參數:

  • find_text 必需。 要查找的文本。
  • within_text 必需。 包含要查找文本的文本。
  • start_num 可選。 指定開始進行查找的字元。 within_text 中的首字元是編号為 1 的字元。 如果省略 start_num,則假定其值為 1。
  1. 難度級别:★☆☆☆☆
  2. 基礎用法舉例

題目一:查找EXCEL所在位置

公式寫法:=FIND("EXCEL",A2)

Excel常用函數之Find函數

公式解析:find函數如果能查找到目标值的話,就會顯示目标值在查找文本的位置,如上圖,"EXCEL"的所在位置就是1.如果未查找到的話,就會顯示#VALUE!。

題目二:查大寫E第二次出現的位置

公式寫法:=FIND("E",A3,2)

Excel常用函數之Find函數

公式解析:大寫E第一次出現的位置索引是1,查找第二次的話,就把開始位置指在1之後,從2開始。

  1. 擴充用法舉例

在上面的例子中,如果沒有查到結果值顯示#VALUE!是不太友好的,為了規避這個顯示,就需要其它函數,結合起來使用。

①ISNUMBER函數,這個函數隻有一個參數,并且函數隻有一個作用,就是判斷輸入的内容是否為數字。除了數字傳回TRUE外,其它都傳回FALSE.

公式寫法:=ISNUMBER(B3)

Excel常用函數之Find函數

②使用IF,ISNUMBER和FIND函數完成題目一的需求

公式寫法:=IF(ISNUMBER(FIND("EXCEL",A2)),FIND("EXCEL",A2),"不存在")

Excel常用函數之Find函數

公式解析:使用ISNUMBER判斷FIND傳回的是否為數值,如果是數值則顯示查詢到的位置,不為數值,則顯示文本“不存在”。

  1. 總結
  • 如果 find_text 為空文本 (""),則 FIND 會比對搜尋字元串中的首字元(即編号為 start_num 或 1 的字元)。
  • Find_text 不能包含任何通配符。
  • 如果find_text中未顯示within_text,則 FIND 和 FINDB 傳回#VALUE! 錯誤值。
  • 如果start_num不大于零,則 FIND 和 FINDB 傳回#VALUE! 錯誤值。
  • 如果start_num大于最大長度,則 FIND within_text FINDB 傳回#VALUE! 錯誤值。
  • 可以使用 start_num 來跳過指定數目的字元。 以 FIND 為例,假設要處理文本字元串“AYF0093.YoungMensApparel”。 若要在文本字元串的說明部分中查找第一個“Y”的編号,請将 start_num 設定為 8,這樣就不會搜尋文本的序列号部分。 FIND 從第 8 個字元開始查找,在下一個字元處找到 find_text,然後傳回其編号 9。 FIND 始終傳回從 within_text 的起始位置計算的字元編号,如果 start_num 大于 1,則會對跳過的字元計數。
  1. 常見問題
  • FIND 和 FINDB 區分大小寫,并且不允許使用通配符。 如果您不希望執行區分大小寫的搜尋或使用通配符,則可以使用 SEARCH 和 SEARCHB 函數。

繼續閱讀