目錄
ToggleExcel 取中間文字教學總覽
在日常的資料整理與分析工作中,經常會遇到需要從一串文字或代碼中擷取特定區段的情境。例如:從產品編號中抽取批次號、從郵件地址中擷取帳號名稱、或從姓名欄位中分離中間名。這類需求在專案管理、報表製作、資料清理等場景都非常常見。Excel內建多種文字處理函數,其中以MID函數最常用於「取中間文字」。本篇將從基礎到進階,帶你掌握各種取中間文字的實用技巧。
MID函數完整解析
MID函數語法與參數說明
MID函數可用來從指定文字中,依照起始位置與長度,擷取出中間的一段內容。其語法如下:
=MID(文字, 起始位置, 長度)
- 文字:要擷取的原始字串(可為儲存格或直接輸入文字)。
- 起始位置:從第幾個字元開始擷取(第一個字元為1)。
- 長度:欲擷取的字元數。
常見注意事項:
– 起始位置若小於1,會出現錯誤。
– 長度若超過剩餘字元數,僅會擷取到最後一個字元。
– 若原始字串為空,結果也為空。
基礎範例操作
- 數字字串擷取
假設A2儲存格內容為「1234567890」,要取出第3到第7個字元(即「34567」):
=MID(A2, 3, 5)
- 英文文字擷取
A3儲存格為「PM-Excel-Guide」,要取出「Excel」:
=MID(A3, 4, 5)
- 中文文字擷取
A4儲存格為「專案管理教學」,要取「管理」二字:
=MID(A4, 3, 2)
MID與LEFT、RIGHT函數比較與選用時機
函數 | 功能說明 | 適用情境 | 範例公式 |
---|---|---|---|
LEFT | 取左邊N個字元 | 需擷取開頭固定長度資料 | =LEFT(A2, 3) |
MID | 取中間N個字元 | 需擷取中間、起始點可變的資料 | =MID(A2, 3, 5) |
RIGHT | 取右邊N個字元 | 需擷取結尾固定長度資料 | =RIGHT(A2, 4) |
選用建議:
– 若資料格式固定,且需取開頭或結尾,建議用LEFT或RIGHT。
– 若需根據分隔符或特定條件動態擷取,建議用MID搭配其他函數。
進階取中間文字技巧
結合FIND/SEARCH動態擷取
在實務上,常遇到分隔符位置不固定、需動態判斷起始點的情境。這時可結合FIND或SEARCH函數,找出分隔符位置後再用MID擷取。
範例1:取「-」後所有文字
B2儲存格為「ABC-DEF」
公式:
=MID(B2, FIND("-", B2) + 1, LEN(B2) - FIND("-", B2))
結果為「DEF」。
範例2:取兩個分隔符之間的內容
B3儲存格為「A-123-B」
要取出「123」:
=MID(B3, FIND("-", B3) + 1, FIND("-", B3, FIND("-", B3) + 1) - FIND("-", B3) - 1)
說明:
– 第一個FIND找出第一個「-」的位置。
– 第二個FIND從第一個「-」後開始找第二個「-」。
– MID起始點為第一個「-」後一位,長度為兩個分隔符之間的距離。
常見實務案例解析
- 批次擷取郵件帳號
假設C2為「[email protected]」,要取出「user01」:
=LEFT(C2, FIND("@", C2) - 1)
- 擷取產品代碼中的批次號
D2為「PRD-2023-AB12」,要取出「2023」:
=MID(D2, FIND("-", D2) + 1, FIND("-", D2, FIND("-", D2) + 1) - FIND("-", D2) - 1)
- 批次處理多筆資料
可將上述公式拖曳填滿,或結合Excel表格自動套用。
錯誤排解與注意事項
- FIND找不到分隔符:會出現#VALUE!錯誤。可用IFERROR包覆,避免公式中斷。
=IFERROR(MID(B2, FIND("-", B2) + 1, LEN(B2) - FIND("-", B2)), "")
- 參數超界:如起始位置超過字串長度,結果為空字串。
- 空值處理:原始資料為空時,公式結果也為空。
- 全形/半形符號:FIND區分全形與半形,注意資料格式一致性。
FAQ:Excel 取中間文字常見問題
Q1:MID遇到中文會有問題嗎?
A:Excel的MID函數可正確處理中文,每一個中文字視為一個字元。
Q2:FIND與SEARCH有何差異?
A:FIND區分大小寫,SEARCH不區分。若需忽略大小寫建議用SEARCH。
Q3:Excel 365/網頁版/手機版MID用法有差異嗎?
A:語法一致,但部分舊版Excel不支援動態陣列,複雜公式時需注意版本差異。
Q4:如何處理多重分隔符或變動長度?
A:可結合多層FIND/SEARCH,或考慮進階工具如Power Query。
Q5:MID遇到特殊符號或空白怎麼辦?
A:可搭配TRIM、SUBSTITUTE等函數清理資料後再擷取。
進階應用與自動化
結合其他函數(如SUBSTITUTE、TEXT等)
- 去除特定符號後再擷取
E2為「ABC」,要取第二個「*」後的內容:
=MID(E2, FIND("*", E2, FIND("*", E2) + 1) + 1, LEN(E2))
- 動態處理多筆資料
可結合ARRAYFORMULA(Google Sheets)、或Excel表格自動套用。
Power Query/VBA簡介
當資料結構複雜、需批次處理大量資料時,可考慮使用Power Query或VBA自動化:
- Power Query:可視覺化分割文字、批次處理,適合無程式基礎者。
- VBA:可自訂更複雜的文字處理邏輯,適合進階用戶。
結語與工具推薦
掌握Excel取中間文字的技巧,不僅能大幅提升資料處理效率,也能靈活應對各種實務需求。無論是日常報表、專案資料清理,還是批次資料轉換,善用MID及相關函數都能事半功倍。若你需要更進階的協作與自動化,建議可嘗試Monday.com、ClickUp等專案管理工具,這些平台支援表單自動化、資料整合,能進一步優化團隊流程與效率。