在 Excel 中處理匯入資料、欄位標準化或格式修正時,常需要將特定字元或文字內容替換為其他字串。SUBSTITUTE 函數能依「內容」搜尋並替換文字,適合用於資料清理、格式統一、報表設計與欄位修復等場景。與 REPLACE 函數不同,SUBSTITUTE 是依「文字內容」操作,而非依「位置」。
🔹快速摘要(語法、用途、常見場景)
- 用途:依指定文字內容替換字元或片段
- 語法:
=SUBSTITUTE(原文字, 要替換的文字, 新文字, [第幾次])
- 常見場景:資料清理、格式修正、欄位標準化、報表輸出、批次替換
一、SUBSTITUTE 函數語法與用途:內容導向的文字替換工具
語法:
=SUBSTITUTE(text, old_text, new_text, [instance_num])
- text:原始文字
- old_text:要被替換的文字
- new_text:要插入的新文字
- instance_num(可省略):指定替換第幾次出現的文字,預設為全部替換
二、範例教學:五個基礎 + 五個進階範例
🔸基礎範例(適合初學者快速掌握用途)
範例一:將「-」替換為空格
=SUBSTITUTE("A-B-C", "-", " ")
回傳 A B C
。
範例二:將「apple」替換為「香蕉」
=SUBSTITUTE("I like apple", "apple", "香蕉")
回傳 I like 香蕉
。
範例三:只替換第一個「-」為空格
=SUBSTITUTE("A-B-C", "-", " ", 1)
回傳 A B-C
。
範例四:處理儲存格內容
=SUBSTITUTE(A1, ",", ";")
將 A1 中的逗號替換為分號。
範例五:將空格替換為無字元(完全移除)
=SUBSTITUTE("Excel Function", " ", "")
回傳 ExcelFunction
。
🔸進階範例(適合報表設計與資料清理應用)
範例六:搭配 TRIM 清理空格後替換標點
=SUBSTITUTE(TRIM(A1), ",", "|")
清理空格後將逗號替換為分隔符。
範例七:搭配 CLEAN 處理不可見字元後替換
=SUBSTITUTE(CLEAN(A1), CHAR(160), " ")
將非標準空格替換為一般空格。
範例八:搭配 TEXTJOIN 合併並替換內容
=SUBSTITUTE(TEXTJOIN(",", TRUE, A1:C1), ",", ";")
合併後將逗號替換為分號。
範例九:批次處理整欄資料(動態陣列)
=MAP(A2:A100, LAMBDA(x, SUBSTITUTE(x, "-", "")))
將 A2:A100 中每列的破折號移除(Excel 365)。
範例十:搭配 IF 判斷後替換或顯示提示
=IF(A1="", "尚未填寫", SUBSTITUTE(A1, "錯誤", "修正"))
若 A1 為空則顯示提示,否則替換「錯誤」為「修正」。
三、常見問題解答(FAQ)
Q1:SUBSTITUTE 和 REPLACE 有何差異?
SUBSTITUTE 是依「內容」替換,REPLACE 是依「位置」替換。
Q2:SUBSTITUTE 可以處理中文嗎?
可以,可替換任意語言的文字內容。
Q3:SUBSTITUTE 可以只替換部分出現嗎?
可以,透過第四個參數指定第幾次出現要替換。
Q4:SUBSTITUTE 可以處理整欄資料嗎?
可以,搭配 MAP 或拖曳填滿即可批次處理。
Q5:SUBSTITUTE 可以搭配哪些函數使用?
常見搭配 TRIM、CLEAN、TEXTJOIN、IF、MAP、LAMBDA 等。
四、注意事項與錯誤排除
- 若 old_text 未出現在原文字中,回傳原值
- 若 instance_num 超過出現次數,不會替換
- 若輸入為空白或錯誤值,可能回傳空字串或
#VALUE!
- 中文替換不受編碼影響,可直接操作
- 建議搭配錯誤防呆邏輯處理空白或格式異常輸入
五、延伸技巧與相關函數
- REPLACE 函數:依位置替換文字片段
- TRIM 函數:去除前後空格與多餘空格
- CLEAN 函數:清除不可見控制字元
- TEXTJOIN 函數:合併文字並加入分隔符
- MAP / LAMBDA 函數:批次處理與邏輯封裝
六、結語與延伸閱讀推薦
SUBSTITUTE 函數是 Excel 中最彈性的文字替換工具之一,適合用在資料清理、格式修正、欄位標準化與報表設計等情境。學會 SUBSTITUTE 後,你可以進一步探索:
- [REPLACE 函數教學:依位置替換文字的精準技巧]
- [TRIM 函數教學:去除空格與格式統一的基礎方法]
- [TEXTJOIN 函數教學:合併文字並加入分隔符的彈性技巧]