在 Excel 中處理編碼、格式修正或資料清理時,常需要依指定位置將文字中的部分內容替換為其他字串。REPLACE 函數能根據起始位置與長度,精準地替換文字片段,適合用於代碼修正、欄位標準化、格式清理與報表設計等場景。它與 SUBSTITUTE 函數不同,REPLACE 是依「位置」操作,而非依「字元內容」搜尋替換。
🔹快速摘要(語法、用途、常見場景)
- 用途:依指定位置與長度替換文字片段
- 語法:
=REPLACE(原文字, 起始位置, 替換長度, 新文字)
- 常見場景:代碼修正、格式清理、欄位標準化、報表輸出、資料遮蔽
一、REPLACE 函數語法與用途:位置導向的文字替換工具
語法:
=REPLACE(old_text, start_num, num_chars, new_text)
- old_text:原始文字
- start_num:要開始替換的位置(第幾個字元)
- num_chars:要替換的字元數
- new_text:要插入的新文字
二、範例教學:五個基礎 + 五個進階範例
🔸基礎範例(適合初學者快速掌握用途)
範例一:將第 2 到第 4 個字元替換為「XXX」
=REPLACE("ABCDEF", 2, 3, "XXX")
回傳 AXXXEF
。
範例二:將前 4 個字元替換為「2025」
=REPLACE("2023-10-14", 1, 4, "2025")
回傳 2025-10-14
。
範例三:遮蔽手機號碼中間 4 位
=REPLACE("0912345678", 4, 4, "****")
回傳 091****678
。
範例四:處理儲存格內容
=REPLACE(A1, 1, 3, "代碼")
將 A1 的前 3 個字元替換為「代碼」。
範例五:將最後 3 位替換為「END」
=REPLACE("ABCDEF", LEN("ABCDEF")-2, 3, "END")
回傳 ABCEND
。
🔸進階範例(適合報表設計與資料清理應用)
範例六:搭配 FIND 定位後替換
=REPLACE(A1, FIND("-", A1)+1, 3, "XXX")
將破折號後 3 位替換為「XXX」。
範例七:搭配 MID 擷取後再替換
=REPLACE(MID(A1, 2, 5), 2, 2, "##")
先擷取第 2 到第 6 位,再將其中第 2 到第 3 位替換。
範例八:搭配 TEXT 格式化後替換日期段
=REPLACE(TEXT(A1,"yyyy-mm-dd"), 6, 2, "12")
將月份替換為 12。
範例九:批次處理整欄資料(動態陣列)
=MAP(A2:A100, LAMBDA(x, REPLACE(x, 4, 2, "**")))
將 A2:A100 中每列第 4 到第 5 位替換為「**」(Excel 365)。
範例十:搭配 IF 判斷後替換或顯示提示
=IF(A1="", "尚未填寫", REPLACE(A1, 2, 3, "###"))
若 A1 為空則顯示提示,否則替換第 2 到第 4 位。
三、常見問題解答(FAQ)
Q1:REPLACE 和 SUBSTITUTE 有何差異?
REPLACE 是依「位置」替換,SUBSTITUTE 是依「字元內容」搜尋替換。
Q2:REPLACE 可以處理中文嗎?
可以,但需注意中文字為雙位元,可能影響位置判斷。
Q3:REPLACE 可以處理數值嗎?
可以,會自動轉為文字處理;若需保留數值性質,請搭配 VALUE。
Q4:REPLACE 可以處理整欄資料嗎?
可以,搭配 MAP 或拖曳填滿即可批次處理。
Q5:REPLACE 可以搭配哪些函數使用?
常見搭配 FIND、LEN、MID、TEXT、MAP、LAMBDA 等。
四、注意事項與錯誤排除
- 若 start_num 小於 1,或 num_chars 為負值,會回傳錯誤
- 若替換範圍超過文字長度,會回傳可替換的部分
- 中文擷取可能因編碼長度不同而出現不完整字元
- 若輸入為空白或錯誤值,可能回傳空字串或
#VALUE!
- 建議搭配錯誤防呆邏輯處理空白或格式異常輸入
五、延伸技巧與相關函數
- SUBSTITUTE 函數:依字元內容替換文字
- FIND 函數:尋找特定字元位置
- LEN 函數:計算文字長度
- MID 函數:擷取文字中間段落
- MAP / LAMBDA 函數:批次處理與邏輯封裝
六、結語與延伸閱讀推薦
REPLACE 函數是 Excel 中最精準的文字替換工具之一,適合用在代碼修正、格式清理、欄位標準化與報表設計等情境。學會 REPLACE 後,你可以進一步探索:
- [SUBSTITUTE 函數教學:依內容替換字元的進階技巧]
- [FIND 函數教學:尋找特定字元位置的邏輯工具]
- [MID 函數教學:擷取文字中間段落的彈性方法]