在 Excel 中處理編碼、欄位拆解或格式化輸出時,若需從文字中間擷取特定位置與長度的字元,MID 函數是最靈活的選擇。它能精準擷取任意位置的文字片段,適合用於代碼解析、欄位標準化、資料清理與報表設計等場景,是文字處理中不可或缺的工具。
🔹快速摘要(語法、用途、常見場景)
- 用途:擷取文字中間指定位置與長度的字元
- 語法:
=MID(文字, 起始位置, 擷取長度) - 常見場景:代碼拆解、欄位標準化、資料清理、報表格式處理、文字解析
一、MID 函數語法與用途:文字擷取的彈性工具
語法:
=MID(text, start_num, num_chars)
- text:要擷取的文字字串
- start_num:起始位置(從第幾個字元開始)
- num_chars:要擷取的字元數
- 回傳結果為從指定位置開始擷取指定長度的字串
二、範例教學:五個基礎 + 五個進階範例
🔸基礎範例(適合初學者快速掌握用途)
範例一:擷取第 3 到第 5 個字元
=MID("ABCDEF", 3, 3)
回傳 CDE。
範例二:擷取儲存格中間段落
=MID(A1, 2, 4)
擷取 A1 中第 2 到第 5 個字元。
範例三:擷取日期文字中的月份
=MID(TEXT(A1,"yyyy-mm-dd"), 6, 2)
回傳如 10。
範例四:搭配 LEN 擷取倒數第 n 位
=MID(A1, LEN(A1)-2, 3)
擷取最後 3 個字元。
範例五:擷取固定格式代碼中的分類段
=MID("ABC-123-XYZ", 5, 3)
回傳 123。
🔸進階範例(適合報表設計與欄位拆解應用)
範例六:搭配 FIND 擷取分隔符之間的文字
=MID(A1, FIND("-", A1)+1, FIND("-", A1, FIND("-", A1)+1)-FIND("-", A1)-1)
擷取兩個破折號之間的文字。
範例七:搭配 VALUE 將擷取結果轉為數值
=VALUE(MID(A1, 2, 4))
擷取第 2 到第 5 位並轉為數值。
範例八:批次處理整欄資料(動態陣列)
=MAP(A2:A100, LAMBDA(x, MID(x, 3, 5)))
擷取 A2:A100 中每列第 3 到第 7 個字元(Excel 365)。
範例九:搭配 IF 判斷後擷取或顯示提示
=IF(A1="", "尚未填寫", MID(A1, 2, 3))
若 A1 為空則顯示提示,否則擷取第 2 到第 4 位。
範例十:搭配 TEXTJOIN 合併擷取結果
=TEXTJOIN("-", TRUE, MID(A1, 1, 3), MID(A1, 4, 3), MID(A1, 7, 3))
將代碼分段後合併為標準格式。
三、常見問題解答(FAQ)
Q1:MID 可以處理中文嗎?
可以,但需注意中文字為雙位元,可能影響擷取結果;建議搭配完整字元判斷或使用 LEFT/RIGHT。
Q2:MID 可以處理數值嗎?
可以,會自動轉為文字處理;若需保留數值性質,請搭配 VALUE。
Q3:MID 可以搭配哪些函數使用?
常見搭配 LEN、FIND、VALUE、TEXT、MAP、LAMBDA、TEXTJOIN 等。
Q4:MID 可以處理整欄資料嗎?
可以,搭配 MAP 或拖曳填滿即可批次處理。
Q5:MID 可以用在資料驗證嗎?
可以,常用於判斷代碼格式或欄位長度。
四、注意事項與錯誤排除
- 若 start_num 小於 1,或 num_chars 為負值,會回傳錯誤
- 若擷取範圍超過文字長度,會回傳可擷取的部分
- 中文擷取可能因編碼長度不同而出現不完整字元
- 若輸入為空白或錯誤值,可能回傳空字串或
#VALUE! - 建議搭配錯誤防呆邏輯處理空白或格式異常輸入
五、延伸技巧與相關函數
- LEFT 函數:擷取文字左側指定字元數
- RIGHT 函數:擷取文字右側指定字元數
- LEN 函數:計算文字長度
- FIND 函數:尋找特定字元位置
- MAP / LAMBDA 函數:批次處理與邏輯封裝
六、結語與延伸閱讀推薦
MID 函數是 Excel 中最彈性的文字擷取工具之一,適合用在欄位拆解、代碼解析、格式處理與報表設計等情境。學會 MID 後,你可以進一步探索:
- [LEFT 函數教學:擷取文字左側指定字元的技巧]
- [RIGHT 函數教學:擷取文字右側指定字元的技巧]
- [FIND 函數教學:尋找特定字元位置的邏輯工具]




















