在 Excel 的工作表裡,如何能取出一個儲存格裡的英文字和中文字?
參考下圖,假設儲存格裡只含中文和英文,其中沒有包含數字。而且英文在前,中文字在後。
【公式設計與解析】
1. 取出英文字
儲存格B3:{=MID(A3,1,MATCH(TRUE,MID(A3,ROW(1:20),1)>"z",1)-1)}
這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動加上「{}」。
(1) MID(A3,ROW(1:20),1)
在陣列公式中取出儲存格A3字串中的每一個字元。其中ROW(1:20)會在陣列公式中產生1,2,3, … 20的數字。
(2) MID(A3,ROW(1:20),1)>"z"
該公式用以判斷字元是否大於「z」字元,因為在 ASCII 編碼中,「z」字元的碼為英文字中最大者。若是傳回 FALSE,則代表該字元為英文字,否則為中文字。
(3) MATCH(TRUE,MID(A3,ROW(1:20),1)>"z",1)
利用 MATCH 函數找到每一個字元的位置,傳回 1,2,3,4,…。
其中參數「1」,讓 MATCH 傳回小於或等於尋找值的最大值。
(4) MID(A3,1,MATCH(TRUE,MID(A3,ROW(1:20),1)>"z",1)-1)
因為英文字在字串的前半段,所以利用 MID 函數由第1個字完,取出「第(3)式-1」個字元。
2. 取出中文字
儲存格C3:{=MID(A3,MATCH(TRUE,MID(A3,ROW(1:20),1)>"z",1),20)}
這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動加上「{}」。
因為中文字在字串的後半段,所以利用 MID 函數由第(3)式的位置開始,取出20個字元。(20只是一個比較大的字數字,無特別的意義)
留言列表