在 Excel 中處理欄位拆解、格式解析或資料清理時,若需找出某個字元或文字在字串中的位置,SEARCH 函數是最彈性的選擇。它能回傳指定文字首次出現的位置,且不區分大小寫,適合用於搭配 MID、LEFT、RIGHT 等函數進行欄位解析、代碼拆解與格式控制。
🔹快速摘要(語法、用途、常見場景)
- 用途:尋找特定字元或文字在字串中的位置(不區分大小寫)
- 語法:
=SEARCH(要找的文字, 原文字, [起始位置]) - 常見場景:欄位拆解、格式解析、代碼定位、報表欄位控制、文字擷取輔助
一、SEARCH 函數語法與用途:彈性導向的文字搜尋工具
語法:
=SEARCH(find_text, within_text, [start_num])
- find_text:要尋找的文字或字元
- within_text:原始文字字串
- start_num(可選):從第幾個字元開始搜尋,預設為 1
- 回傳結果為該文字首次出現的位置(以 1 為起點)
二、範例教學:五個基礎 + 五個進階範例
🔸基礎範例(適合初學者快速掌握用途)
範例一:尋找逗號位置
=SEARCH(",", "蘋果,香蕉,芒果")
回傳 3。
範例二:尋找文字「apple」的位置(不區分大小寫)
=SEARCH("apple", "I like APPLE")
回傳 8。
範例三:從第 5 個字元開始搜尋「a」
=SEARCH("a", "banana", 5)
回傳 6。
範例四:處理儲存格內容
=SEARCH("-", A1)
尋找 A1 中破折號的位置。
範例五:找不到指定文字時回傳錯誤
=SEARCH("X", "ABCDEF")
回傳 #VALUE!。
🔸進階範例(適合報表設計與欄位拆解應用)
範例六:搭配 MID 擷取分隔符之後的文字
=MID(A1, SEARCH("-", A1)+1, LEN(A1))
擷取破折號之後的文字。
範例七:搭配 LEFT 擷取分隔符之前的文字
=LEFT(A1, SEARCH("-", A1)-1)
擷取破折號之前的文字。
範例八:搭配 SUBSTITUTE 尋找第二個逗號位置
=SEARCH(",", SUBSTITUTE(A1, ",", "#", 2))
將第二個逗號替換為特殊字元後定位。
範例九:批次處理整欄資料(動態陣列)
=MAP(A2:A100, LAMBDA(x, SEARCH(":", x)))
尋找 A2:A100 中每列冒號的位置(Excel 365)。
範例十:搭配 IF 判斷是否包含指定字元
=IF(ISNUMBER(SEARCH("-", A1)), "包含破折號", "未包含")
判斷 A1 是否包含破折號。
三、常見問題解答(FAQ)
Q1:SEARCH 和 FIND 有何差異?
SEARCH 不區分大小寫,FIND 區分大小寫。
Q2:SEARCH 可以處理中文嗎?
可以,會正確回傳中文字元位置。
Q3:SEARCH 可以處理多層分隔嗎?
可以,搭配 SUBSTITUTE 或多層 SEARCH 使用。
Q4:SEARCH 可以處理整欄資料嗎?
可以,搭配 MAP 或拖曳填滿即可批次處理。
Q5:SEARCH 可以搭配哪些函數使用?
常見搭配 MID、LEFT、RIGHT、LEN、SUBSTITUTE、MAP、LAMBDA 等。
四、注意事項與錯誤排除
- 若找不到指定文字,會回傳
#VALUE!錯誤 - 起始位置若小於 1 或超過文字長度,會回傳錯誤
- 中文擷取不受編碼影響,可直接操作
- 建議搭配錯誤防呆邏輯處理空白或格式異常輸入
- 若需區分大小寫,請改用 FIND 函數
五、延伸技巧與相關函數
- FIND 函數:區分大小寫的文字搜尋
- MID 函數:擷取文字中間段落
- LEFT / RIGHT 函數:擷取文字左右側指定字元
- SUBSTITUTE 函數:替換特定字元以利定位
- MAP / LAMBDA 函數:批次處理與邏輯封裝
六、結語與延伸閱讀推薦
SEARCH 函數是 Excel 中最彈性的文字定位工具之一,適合用在欄位拆解、格式解析、資料清理與報表設計等情境。學會 SEARCH 後,你可以進一步探索:
- [FIND 函數教學:區分大小寫的文字搜尋技巧]
- [MID 函數教學:擷取文字中間段落的彈性方法]
- [SUBSTITUTE 函數教學:替換字元以利格式清理]











