本文將說明 Microsoft Excel 中 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 不能包含任何萬用字元。
-
如果 within_text 中沒有出現 find_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
資料 |
||
---|---|---|
Ceramic Insulators #124-TD45-87 |
||
Copper Coils #12-671-6772 |
||
Variable Resistors #116010 |
||
公式 |
描述 (結果) |
結果 |
=MID(A2,1,FIND(" #",A2,1)-1) |
會擷取儲存格 A2 中,從位置 1 到位置 "#" 的文字 (Ceramic Insulators) |
Ceramic Insulators |
=MID(A3,1,FIND(" #",A3,1)-1) |
會擷取儲存格 A3 中,從位置 1 到位置 "#" 的文字 (Copper Coils) |
Copper Coils |
=MID(A4,1,FIND(" #",A4,1)-1) |
會擷取儲存格 A4 中,從位置 1 到位置 "#" 的文字 (Variable Resistors) |
Variable Resistors |