本文將說明 Microsoft Excel 中 SEARCH 函數的公式語法及使用方式。
描述
SEARCH 函數會在第二個文字字串內找到一個文字字串,並傳回第一個文字字串從第二個文字字串的第一個字元開始位置的數目。 例如,若要找出字母 "n" 在單字 "printer" 中的位置,您可以使用下列函數:
=SEARCH("n","printer")
此函數會傳回 4,因為 "n" 在單字 "printer" 中位於第四個字元。
您也可以搜尋其他單字內的單字。 例如,
=SEARCH("base","database")
函數會傳回 5,因為單字 "base" 在單字 "database" 中是從第五個字元開始。 您可以使用 SEARCH 來判斷字元或文字字串在另一個文字字串中的位置,然後使用 MID 傳回文字,或使用 REPLACE 來變更文字。 這些函數將在本文的範例 1 中說明。
語法
SEARCH(find_text,within_text,[start_num])
SEARCH 函數具有下列自變數:
-
find_text 必要。 這是要尋找的文字。
-
within_text 必要。 這是要在其中搜尋 find_text 引數值的文字。
-
start_num 選用。 這是要在 within_text 引數中開始搜尋的字元數。
註解
-
SEARCH 函數不區分大小寫。 如果您想要執行區分大小寫的搜尋,可以使用 FIND。
-
您可以在 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 |
重要:
-
SEARCHB 函數已遭取代。
-
在設定為相容性版本 2 的活頁簿中,SEARCH 改善了使用替代對的行為,將它們計算為一個字元而非兩個字元。 變化選取器 (常用於表情圖示) 仍會算為個別字元。 如需詳細資訊,請參閱:Unicode 標準