MID 函數是Excel中進行文書處理的好幫手。你可以透過MID函數從選定的文字串中,提取指定數量的字符,節省大量的手動操作。
本文將會用5分鐘的時間,教會你MID函數的完整用法、範例教學、進階用法、常見錯誤等等。
因此,如果你是第一次接觸MID函數,建議可以從頭到尾看過一次,把MID函數的用法徹底搞懂,進而提升工作效率。
MID函數用法
當我們把滑鼠移到 MID 的公式時,會看到一行說明:
MID(text, start_num, num_chars)
看起來很複雜對吧!但其實改成中文就沒那麼可怕了:
MID(選定儲存格,從第幾個字元開始提取,提取幾個字元數)
- text:選定儲存格(直接打文字也可以)
- start_num:從第幾個字元開始提取
- num_chars:提取幾個字元數
接著,我們來看看 MID 函數的範例:
MID範例教學 – 提取中文姓名、日期
假設我們想要提取電郵名單中每位客戶的姓氏,那麼我們就可以輸入以下公式:
=MID(B3,1,1) //從B3的第1個字元開始提取,並提取1個字元
那如果我們要提取電郵名單中每位客戶的名字的話,就要輸入:
=MID(B3,2,2) //從B3的第2個字元開始提取,並提取2個字元
但是,如果今天換成我們要提取的是日期的話,此時用MID函數會出現奇怪的結果:
=MID(B3,1,4) //2024/1/1在excel中是以45292的數字形式儲存,故會提取到4529
這是因為Excel中的日期是以數字形式儲存的(1900年1月1日為1;2024年1月1日是45292)。
如果想要順利提取日期的話,我們就得用YEAR函數、MONTH函數以及DAY函數:
=YEAR(B3) //提取B3的年份
=MONTH(B3) //提取B3的月份
=DAY(B3) //提取B3的日期
但萬一你堅持要用MID函數提取日期其實也可以,但就要先用TEXT函數將日期轉換為文本:
=(TEXT(B3,"yyyy/mm/md")) //將B3轉為「年年年年/月月/日日」的文字形式
接著再直接提取就可以囉!
=MID(B3,1,4)// 從B3的第1個字元開始提取,並提取4個字元
MID進階用法 – 結合SEARCH提取英文姓氏、名字
或許螢幕前的你會有疑問:中文名字通常都是3個字,用MID函數提取非常簡單,但如果是英文名字,每個人姓名的長度都不同該如何提取呢?
此時,我們可以結合SEARCH函數,先找出名字與姓氏之間的「空白格」是第幾個字元:
=SEARCH(" ",B3)//搜尋空白格在B3中是第幾個字元
接著再從第一個字元開始,提取SEARCH(” “,B5)-1個字元數,就可以提取出名字了:
=MID(B3,1,SEARCH(" ",B3)-1)//從B3的第1個字元開始提取,並提取到空白格前1個字元
最後,如果要提取出姓氏,則可以輸入以下公式:
=MID(B3,SEARCH(" ",B3)+1,100)//從B3的空白格後一個字元開始提取,並提取100個字元
值得注意的是,如果 num_chars 提取數量超過字元總數量的話,MID函數就會直接顯示到最後一個字元。
所以只要一個人的英文姓氏沒有超過100個字元數,這個公式就是可以正常提取姓氏的喔!
MID常見錯誤(#VALUE!、#NAME!、#REF!)
以下提供MID函數常見的錯誤提示:
- #VALUE!:以下情況會顯示#VALUE!:
- start_num小於1。
- num_chars小於0。
- #NAME!:通常是由於輸入了錯誤的語法,導致MID函數無法正常運作
- #REF!:原本參照的儲存格被刪除或異常。
MID溫馨提醒
- 如果 start_num 大於選定文字的字元數,MID函數會回傳空白格。
- 如果 num_chars 提取數量超過字元總數量的話,MID函數就會直接顯示到最後一個字元。
- 如果 num_chars 等於0,MID函數會回傳空白格。
- 如果要用MID函數提取日期,需要先用TEXT函數將日期轉為文字(或者直接更改儲存格格式)。