本文將說明 Microsoft Excel 中 SEARCH 和 SEARCHB 函數的公式語法及使用方式。
描述
SEARCH 及 SEARCHB 函數會在某個文字字串內找到另一個文字字串,並傳回該文字字串在第一個文字字串中的起始位置。 例如,若要找出字母 "n" 在單字 "printer" 中的位置,您可以使用下列函數:
=SEARCH("n","printer")
此函數會傳回 4,因為 "n" 在單字 "printer" 中位於第四個字元。
您也可以搜尋其他單字內的單字。 例如,
=SEARCH("base","database")
函數會傳回 5,因為單字 "base" 在單字 "database" 中是從第五個字元開始。 您可以使用 SEARCH 和 SEARCHB 函數來判斷某個字元或文字字串在另一個文字字串中的位置,然後再使用 MID 和 MIDB 函數傳回文字,或使用 REPLACE 和 REPLACEB 函數來變更文字。 這些函數將在本文的範例 1 中說明。
:
-
部分語言可能無法使用這些函數。
-
只有當 DBCS 語言設為預設語言時,SEARCHB 會將每個字元計算為 2 個位元組。 在其他情況下,SEARCHB 的行為如同 SEARCH,會將每個字元計算為 1 個位元組。
支援 DBCS 的語言包括日文、簡體中文、繁體中文及韓文。
語法
SEARCH(find_text,within_text,[start_num])
SEARCHB(find_text,within_text,[start_num])
SEARCH 及 SEARCHB 函數具有下列引數:
-
find_text 必要。 這是要尋找的文字。
-
within_text 必要。 這是要在其中搜尋 find_text 引數值的文字。
-
start_num 選用。 這是要在 within_text 引數中開始搜尋的字元數。
註解
-
SEARCH 與 SEARCHB 函數不區分大小寫。 若要在執行搜尋時區分大小寫,請使用 FIND 及 FINDB。
-
您可以在 find_text 引數中使用萬用字元 (問號 (?) 及星號 (*))。 問號可比對任一字元;星號可比對任一連續的字元。 如果您要尋找實際的問號或星號,請在該字元前輸入波狀符號 (~)。
-
如果找不到 find_text 的值,則會傳回 #VALUE! 錯誤值。
-
如果省略 start_num 引數,則會假設其值為 1。
-
如果 start_num 不大於 0 (零) 或大於 within_text 引數的長度,則會傳回 #VALUE! 錯誤值。
-
使用 start_num 即可略過指定字元數。 以 SEARCH 函數為例,假設您正在文字字串 "AYF0093.YoungMensApparel" 中進行搜尋。 若要在文字字串的描述部分尋找第一個 "Y" 的位置,請將 start_num 設為 8,這樣就不會搜尋該文字的序號部分 (此例中為 "AYF0093")。 SEARCH 函數會從第 8 個字元開始搜尋,於下一個位置找到 find_text 引數所指定的字元,然後傳回數字 9。 SEARCH 函數一律會自 within_text 引數的開始位置算起,傳回字元位置,也就是如果 start_num 引數大於 1,同樣會計算略過的字元。
範例
請在下列表格中複製範例資料,再將之貼到新 Excel 工作表中的儲存格 A1。 若要讓公式顯示結果,請選取公式,按 F2,然後再按 Enter。 如有需要,您可以調整欄寬來查看所有資料。
資料 |
||
---|---|---|
陳述式 |
||
Profit Margin |
||
邊界 |
||
The "boss" is here. |
||
公式 |
描述 |
結果 |
=SEARCH("e",A2,6) |
儲存格 A2 內字串第一個 "e" 的位置,從第六個位置開始。 |
7 |
=SEARCH(A4,A3) |
"margin" (要搜尋的字串位於儲存格 A4) 在 "Profit Margin" (要搜尋的儲存格為 A3) 內的位置。 |
8 |
=REPLACE(A3,SEARCH(A4,A3),6,"Amount") |
在儲存格 A3 內第一個搜尋到 "Margin" 的位置上,以 "Amount" 取代 "Margin",然後使用字串 "Amount" 取代該字元及接下來的五個字元。 |
Profit Amount |
=MID(A3,SEARCH(" ",A3)+1,4) |
傳回 "Profit Margin" (儲存格 A3) 內第一個空白字元後的前四個字元。 |
Marg |
=SEARCH("""",A5) |
儲存格 A5 內第一個雙引號 (") 的位置。 |
5 |
=MID(A5,SEARCH("""",A5)+1,SEARCH("""",A5,SEARCH("""",A5)+1)-SEARCH("""",A5)-1) |
只傳回儲存格 A5 中,以雙引號括住的文字。 |
boss |