MID 函數可以從文字字串的任意位置開始,擷取指定長度的文字。常用於處理具備固定格式的資料,例如從訂單編號中取出日期,或從身分證字號中判斷性別代碼。
Excel MID 函數語法
=MID(文字, 起始位置, 擷取字數)| 參數 | 必填 | 說明 |
|---|---|---|
| 文字 | 是 | 包含要擷取字元的原始文字字串或儲存格參照。 |
| 起始位置 | 是 | 要開始擷取的第一個字元位置。文字的第一個字元位置為 1。 |
| 擷取字數 | 是 | 指定要從文字中擷取的字元數量。 |
回傳:傳回擷取出的文字字串。
適用版本:支援所有 Excel 版本,包含 Excel 2007 以上及 Microsoft 365。
MID 函數範例
範例 1:基礎擷取
從固定格式的產品編號中,擷取中間的產品類別代碼。
| 產品編號 | 產品名稱 | 類別代碼 |
|---|---|---|
| A-123-X | 滑鼠 | |
| B-456-Y | 鍵盤 |
在 C2 輸入公式:
=MID(A2, 3, 3)結果:123。產品編號的第 3 個字元開始是類別代碼,長度固定為 3 碼。公式從 A2 儲存格的第 3 個位置開始,向右擷取 3 個字元,得到 123。
範例 2:擷取單一字元
從身分證字號中擷取第 2 碼,用來判斷性別。
| 姓名 | 身分證字號 | 性別代碼 |
|---|---|---|
| 王小明 | A123456789 | |
| 陳怡君 | B298765432 |
在 C2 輸入公式:
=MID(B2, 2, 1)結果:1。身分證字號的第 2 碼代表性別代碼。公式從 B2 儲存格的第 2 個位置開始,擷取 1 個字元,結果為 1。
範例 3:動態長度擷取
從訂單備註中,擷取括號內的專案代號(長度不固定)。
| 訂單備註 | 專案代號 |
|---|---|
| 急件(P-99)處理 | |
| 一般(P-1024)處理 |
在 B2 輸入公式:
=MID(A2, FIND("(", A2) + 1, FIND(")", A2) - FIND("(", A2) - 1)結果:P-99。先用 FIND 函數找出左右括號的位置。起始位置為左括號位置加 1,擷取字數為右括號位置減左括號位置再減 1,藉此精準取出括號內的文字。
使用 MID 的技巧與注意事項
- 如果擷取字數大於從起始位置算起到字串結尾的剩餘長度,MID 會直接傳回剩餘的所有字元,不會產生錯誤。
- MID 函數傳回的結果皆為文字格式。如果擷取出來的是數字且需要進行運算,可以在公式外層包上 VALUE 函數將其轉換為數值。
- 若要處理全形與半形字元混合且需以位元組計算長度的資料,請改用 MIDB 函數(一個全形字元視為 2 個位元組)。
MID 常見錯誤與解決方法
| 錯誤 | 原因 | 解決方法 |
|---|---|---|
| #VALUE! | 起始位置小於 1,或者擷取字數設定為負數。 | 檢查公式中的數值,確保起始位置大於等於 1,且擷取字數大於等於 0。 |
| 回傳空白 | 設定的起始位置大於原始文字字串的總長度。 | 確認起始位置的數值是否正確,可搭配 LEN 函數檢查原始字串的總長度。 |
Google 試算表可以用 MID 嗎?
Google 試算表完全支援 MID 函數,用法與參數設定與 Excel 相同。
下載 MID 範例檔
上面的範例都整理在這個檔案裡,每個範例一個工作表,黃色格子是公式,可以直接改資料看結果變化:MID 範例.xlsx(範例公式都在試算表軟體實際計算過)。
常見問題
MID 函數和 LEFT、RIGHT 函數有什麼不同?
LEFT 只能從文字最左邊開始擷取,RIGHT 只能從最右邊開始擷取。MID 則可以指定從文字字串中間的任何一個位置作為起點來擷取指定字數。
如果不知道要擷取的文字長度怎麼辦?
可以將擷取字數設定為一個極大的數字(例如 999),MID 會自動擷取到字串最後一個字元。或者搭配 LEN 與 FIND 函數動態計算出需要的字數。
為什麼 MID 擷取出來的數字無法加總?
因為 MID 函數的計算結果預設為文字格式。若要進行數學運算,需使用 VALUE 函數將其轉換為數值,例如 =VALUE(MID(A1, 2, 3))。
相關函數
這篇收錄在「Excel 函數字典」。




