在 Excel 中將全形文字轉成半形,最快的方法是直接使用 ASC 函數。如果遇到英數混合內容,且只需將「數字」轉為半形,則建議使用 SUBSTITUTE 函數,將 0 到 9 的全形數字逐一替換為半形。
今天被網友差點問倒,有人問了我要怎麼將全形文字都變成半形,這個倒是簡單,有函數就能簡單達成。但後面他繼續追問我:那如果他是英數混合內容,但只有數字要變成半形怎麼辦?我思維了半天在想怎麼做,最後好不容易解了出來。這還真的沒有比較簡單的做法,到底要怎麼做呢?往下就來分享今天的 Excel 教學吧,真的蠻難的...
Excel 全形轉半形的基本方法:使用 ASC 函數
如果需要下載範例檔練習請參考:下載範例教學
要將全形轉成半形非常簡單,只要利用 Excel 內建的 ASC 函數就能一鍵轉換。來,說明一下,最基本的課題像這樣:當你遇到一整串的全形文字,要怎麼快速轉成半形?我們往下來看實際的範例,你可以看到畫面中 A2 儲存格裡是一串全形文字。
要轉成半形非常之簡單,只要利用 ASC 這個函數。比如像是要轉換 A2 的文字,你只需要在旁邊的儲存格輸入 =ASC(A2),公式如下:
=ASC(A2)
這樣就搞定了,是不是很簡單?ASC 函數會自動把字串裡的所有全形字元(包含英文字母與數字)都轉成半形。不過,真正難的來了,再往下來看看我差點被問倒的進階情境。
進階難題:英數混合內容,如何只將數字轉半形?
如果遇到英數混合內容且只想要數字變半形,可以使用 SUBSTITUTE 函數將全形 0 到 9 逐一取代。網友的追問是:要怎麼把英數混合內容變成半形,而且只有數字要變半形,英文字母要維持全形?這我真的想了很久要怎麼做,最後弄了一個比較土法煉鋼的公式串,如下圖所示:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"0","0"),"1","1"),"2","2"),"3","3"),"4","4"),"5","5"),"6","6"),"7","7"),"8","8"),"9","9")
我原本是想要思維著,將文字全拆開後,再各字轉成半形再合併。但這樣好像有點麻煩,還要列陣列、還要好幾層疊一疊。後來我覺得,單純用 SUBSTITUTE 這個函數來做最直接。這個函數的功用是取代文字串裡的指定內容。
雖然公式看起來很長,不過這重點就是針對每個數字字串做十次取代,從全形的 0 取代到 9。稍微土法煉鋼一點,但結論來說是完美的,確實能達到只轉換數字的目的。
為什麼不建議用公式替換英文字母?
因為英文字母包含大小寫共有 52 個,如果用 SUBSTITUTE 函數逐一取代,公式會高達 52 層,非常容易出錯。這時你可能會想,那如果你是想要單純取代掉英文變成半形,數字不動呢?那我就攤手了。
如果用上面這個 SUBSTITUTE 的方式,不是不行,只是 26 個字母大小寫加起來你總共要寫 52 層的公式!這樣寫下去應該會死掉啊,不僅公式長到眼花,還很容易漏打括號出錯。
常見問題
Excel 如何把全形文字變成半形?
最簡單的做法是使用 ASC 函數。只要在儲存格輸入 `=ASC(目標儲存格)`,就能一秒將所有的全形文字、英文與數字轉換為半形。
如果只要把全形數字轉半形,英文字母保持全形怎麼辦?
因為 ASC 函數會全部轉換,如果只想轉換數字,可以使用 SUBSTITUTE 函數,將全形的 0 到 9 逐一取代成半形數字,這需要串接 10 層公式。
可以用 SUBSTITUTE 函數把全形英文字母轉成半形嗎?
理論上可以,但因為英文字母有大小寫共 52 個,如果用 SUBSTITUTE 函數逐一取代,公式會疊加到 52 層,非常冗長且容易出錯,因此不建議這樣做。
(本文於 2026 年 10 月更新:補充步驟說明與常見問題)




