
FIND、FINDB 函數
本文介紹MicrosoftExcel中FIND和FINDB函數的公式語法和用法。
說明函數FIND和FINDB用于在第二個文本串中定位第一個文本串,并返回第一個文本串的起始位置的值,該值從第二個文本串的第一個字符算起。
重要:
這些函數可能并不適用于所有語言。
FIND適用于使用單字節字符集(SBCS)的語言,而FINDB適用于使用雙字節字符集(DBCS)的語言。您的計算機上的默認語言設置對返回值的影響方式如下:
無論默認語言設置如何,函數FIND始終將每個字符(不管是單字節還是雙字節)按1計數。
當啟用支持DBCS的語言的并將其設置為默認語言時,FINDB會將每個雙字節字符按2計數。否則,FINDB會將每個字符按1計數。
支持DBCS的語言包括日語、中文(簡體)、中文(繁體)以及朝鮮語。
語法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。
備注
FIND和FINDB區分大小寫,并且不允許使用通配符。如果您不希望執行區分大小寫的搜索或使用通配符,則可以使用SEARCH和SEARCHB函數。
如果find_text為空文本(“”),則FIND會匹配搜索字符串中的首字符(即編號為start_num或1的字符)。
Find_text不能包含任何通配符。
如果find_text未顯示在within_text中,則FIND和FINDB返回#VALUE!。
如果start_num不大于零,則FIND和FINDB返回#VALUE!。
如果start_num大于within_text的長度,則FIND和FINDB返回#VALUE!。
可以使用start_num來跳過指定數目的字符。以FIND為例,假設要處理文本字符串“AYF0093.YoungMensApparel”。若要在文本字符串的說明部分中查找第一個“Y”的編號,請將start_num設置為8,這樣就不會搜索文本的序列號部分。FIND從第8個字符開始查找,在下一個字符處找到find_text,然后返回其編號9。FIND始終返回從within_text的起始位置計算的字符編號,如果start_num大于1,則會對跳過的字符計數。
示例復制下表中的示例數據,然后將其粘貼進新的Excel工作表的A1單元格中。要使公式顯示結果,請選中它們,按F2,然后按Enter。如果需要,可調整列寬以查看所有數據。
數據
Miriam?McGovern
公式
說明
結果
=FIND(“M”,A2)
單元格A2中第一個“M”的位置
1
=FIND(“m”,A2)
單元格A2中第一個“M”的位置
6
=FIND(“M”,A2,3)
從單元格A2的第三個字符開始查找第一個“M”的位置
8
示例2
數據
CeramicInsulators#124-TD45-87
CopperCoils#12-671-6772
VariableResistors#116010
公式
描述(結果)
結果
=MId(A2,1,FIND(“#”,A2,1)-1)
提取單元格A2中從第一個字符到“#”的文本(CeramicInsulators)
CeramicInsulators
=MId(A3,1,FIND(“#”,A3,1)-1)
提取單元格A3中從第一個字符到“#”的文本(CopperCoils)
CopperCoils
=MId(A4,1,FIND(“#”,A4,1)-1)
提取單元格A4中從第一個字符到“#”的文本(VariableResistors)
VariableResistors

