【EXCEL | MID用法教學】5分鐘快速搞懂MID函數(含範例教學)

MID 函數是 Excel 的30個必學函數之一。我們可以透過 MID 函數從選定的文字串中,提取指定數量的字符,節省大量的手動操作。

本文將會用 5 分鐘的時間,完整教學 MID 函數的用法、範例、進階用法、常見錯誤等等。

如果你常常忘記 MID 函數怎麼寫,或者想要大幅提升工作效率,這篇文章將能幫助到你。

那麼我們就開始吧!

MID 函數用法

以下是 MID 的函數說明:

MID ( text , start_num , num_chars )

引數名稱解釋
text選定儲存格(直接打文字也可以)
start_num從第幾個字元開始提取
num_chars提取幾個字元數

接下來,我們來看看 MID 的幾個使用範例。


MID 範例教學 – 提取中文姓名

如果想要提取每個人的「姓氏」,那麼 MID 函數可以這樣寫:

=MID ( B3 , 1 , 1 )

Excel MID函數用法範例教學
引數名稱解釋範例
text選定儲存格(直接打文字也可以)選定 B3
start_num從第幾個字元開始提取從第1個字元開始提取
num_chars提取幾個字元數提取1個字元

而如果要提取每個人的名字的話,MID 函數就要輸入:

=MID ( B3 , 2 , 2 )

引數名稱解釋範例
text選定儲存格(直接打文字也可以)選定 B3
start_num從第幾個字元開始提取從第2個字元開始提取
num_chars提取幾個字元數提取2個字元

MID 範例教學 – 提取日期

但是,如果用 MID 函數提取日期的話,會出現奇怪的結果:

=MID ( B3 , 1 , 4 )

引數名稱解釋範例
text選定儲存格(直接打文字也可以)選定 B3
start_num從第幾個字元開始提取從第1個字元開始提取
num_chars提取幾個字元數提取4個字元

照道理說應該會提取出「2024」,但結果卻出現了不知道從哪裡來的「4529」。

這是因為 EXCEL 中的日期是以數字形式儲存的。在 EXCEL 的眼中,2024年1月1日是「45292」,因此 MID 函數才會提取到「4529」。

想要順利提取日期,這裡提供2種方法:

  • 改用 YEAR、MONTH、DAY 函數
  • 先用 TEXT 函數轉為「文本」後再用 MID 函數提取

改用 YEAR、MONTH、DAY 函數

比起 MID 函數還要計算字元數量,YEAR 函數則簡單得多:

=YEAR ( B3 )

YEAR / MONTH / DAY 函數會直接提取出日期的年 / 月 / 日,算是非常直覺的函數。


先用 TEXT 函數轉為「文本」後再用 MID 函數提取

如果堅持要使用 MID 函數,則需要搭配 TEXT 函數,先將日期的「數字格式」轉為「文字格式」

=TEXT ( B3 , “yyyy/mm/dd” )

如此一來,TEXT 函數就會將日期轉換為「年年年年 / 月月 / 日日」的文字格式。

接著再用 MID 函數直接提取就可以囉!

=MID ( C3 , 1 , 4 )


MID 進階用法 – 結合 SEARCH 提取英文姓氏、名字

中文名字通常是3個字,用 MID 函數提取非常簡單,但如果是「英文名字」,就會遇到每個人的姓氏、名字長度不一樣,不知道該從哪裡開始提取的問題

這時,需要配合 SEARCH 函數,先找出名字與姓氏之間的「空白格」是第幾個字元:

=SEARCH ( ” “ , B3 )

SEARCH 函數就會找出空白格是在姓名中的第幾個字元。在本例中,Morris Wang 的空白格是第7個字元,Mike Jiang 的空白格是第5個字元,以此類推。

接著再從第1個字元開始,提取到空白格前1格的字元數,也就是 SEARCH(” “,B5)-1,就可以提取出名字了:

=MID ( B3 , 1 , SEARCH(” “,B3)-1 )

如果要提取出姓氏,就需要從空白格後1格字元開始提取,也就是SEARCH (” “,B3)+1,並且提取到最後:

=MID ( B3 , SEARCH(” “,B3)+1 , 100 )

值得注意的是,只要提取的字元數量超過本身的字串長度,MID 函數就只會顯示到最後一個字元

在這個範例中,我提取的字元數量是100,因此只要沒有人的姓氏超過100個字元數,MID 函數就可以提取到最後一個字元喔!


MID 常見錯誤(#VALUE!、#NAME!、#REF!)

  • #VALUE!:以下情況會顯示#VALUE!:
    • start_num小於1。
    • num_chars小於0。
  • #NAME!:通常是由於輸入了錯誤的語法,導致MID函數無法正常運作
  • #REF!:原本參照的儲存格被刪除或異常。

MID 溫馨提醒

  • 如果 start_num 大於選定文字的字元數,MID函數會回傳空白格。
  • 如果 num_chars 提取數量超過字元總數量的話,MID函數就會直接顯示到最後一個字元。
  • 如果 num_chars 等於0,MID函數會回傳空白格。
  • 如果要用MID函數提取日期,需要先用TEXT函數將日期轉為文字(或者直接更改儲存格格式)。

參考資料

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

點擊打開目錄