SEARCH 函數用於尋找特定字串在另一段文字中的起始位置,並回傳數字。這個函數不區分大小寫,且可以使用萬用字元進行模糊搜尋,是處理文字擷取與清理時常用的基礎函數。
Excel SEARCH 函數語法
=SEARCH(尋找字串, 內文, [起始位置])| 參數 | 必填 | 說明 |
|---|---|---|
| 尋找字串 | 是 | 要尋找的文字或字元,可以使用萬用字元(? 或 *)。 |
| 內文 | 是 | 包含要尋找文字的字串或儲存格參照。 |
| 起始位置 | 選填 | 指定從內文的第幾個字元開始尋找。若省略,預設從第一個字元開始。 |
回傳:數字,代表尋找字串在內文中第一次出現的起始位置。
適用版本:Excel 2007 以上版本、Microsoft 365 皆支援此函數。
SEARCH 函數範例
範例 1:基礎用法:尋找單一符號位置
找出電子郵件地址中「@」符號的位置。
| 姓名 | |
|---|---|
| 王小明 | ming@example.com |
在 C2 輸入公式:
=SEARCH("@", B2)結果:5。尋找「@」在「ming@example.com」中的位置。從左邊數來,「@」是第 5 個字元,因此回傳數字 5。
範例 2:進階用法:設定起始位置與不分大小寫
尋找特定產品代碼中,第二次出現的英文字母位置。
| 產品代碼 | 說明 |
|---|---|
| AB-123-ab-456 | 尋找第二個 ab |
在 C2 輸入公式:
=SEARCH("ab", A2, 4)結果:8。在「AB-123-ab-456」中尋找「ab」。設定從第 4 個字元開始找,且 SEARCH 不區分大小寫,會跳過開頭的 AB,找到第 8 個字元開始的 ab。
範例 3:進階用法:搭配萬用字元搜尋
利用萬用字元尋找包含特定模式的字串位置(例如「A」開頭「C」結尾的三個字元)。
| 料號 | 備註 |
|---|---|
| X-A9C-88 | 尋找 A?C |
在 C2 輸入公式:
=SEARCH("A?C", A2)結果:3。尋找字串設定為「A?C」,問號代表任意單一字元。函數會在「X-A9C-88」中找到符合條件的「A9C」,其起始位置為第 3 個字元。
使用 SEARCH 的技巧與注意事項
- SEARCH 函數不區分英文字母大小寫。如果需要嚴格區分大小寫,必須改用 FIND 函數。
- 支援萬用字元,星號(*)代表任意長度的字串,問號(?)代表單一字元。若要尋找真正的星號或問號,需在前面加上波浪號(~)。
- 常與 LEFT、RIGHT、MID 等字串函數搭配使用,用來動態擷取特定符號前後的文字。
SEARCH 常見錯誤與解決方法
| 錯誤 | 原因 | 解決方法 |
|---|---|---|
| #VALUE! | 內文中沒有包含要尋找的字串。 | 確認字串是否拼字正確,或搭配 IFERROR 函數處理找不到時的狀況。 |
| #VALUE! | 起始位置的參數設定錯誤,例如小於 1 或大於內文的總長度。 | 檢查第三個參數的數字,確保其落在合理且有效的字元長度範圍內。 |
Google 試算表可以用 SEARCH 嗎?
Google 試算表完全支援 SEARCH 函數,參數與用法與 Excel 完全一致。
下載 SEARCH 範例檔
上面的範例都整理在這個檔案裡,每個範例一個工作表,黃色格子是公式,可以直接改資料看結果變化:SEARCH 範例.xlsx(範例公式都在試算表軟體實際計算過)。
常見問題
SEARCH 和 FIND 函數有什麼不同?
主要差異在於 SEARCH 不區分大小寫且支援萬用字元;FIND 則會嚴格區分大小寫,且無法使用萬用字元進行模糊搜尋。
如果找不到字串,不想要顯示 #VALUE! 錯誤怎麼辦?
可以將 SEARCH 函數包在 IFERROR 函數中。例如 =IFERROR(SEARCH("A", A1), 0),這樣在找不到字串時就會回傳 0 而不是錯誤代碼。
如何尋找字串中第二次出現的特定符號?
可以利用兩次 SEARCH 函數。將第一次 SEARCH 的結果加 1,作為第二次 SEARCH 的起始位置參數,就能跳過第一個符號並找到第二個符號的位置。
相關函數
這篇收錄在「Excel 函數字典」。




