在 Excel 的工作表裡,如何能取出一個儲存格裡的英文字和中文字?

參考下圖,假設儲存格裡只含中文和英文,其中沒有包含數字。而且英文在前,中文字在後。

Excel-取出一個儲存格裡的英文字和中文字(MID,MATCH)

 

【公式設計與解析】

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的數字。

Excel-取出一個儲存格裡的英文字和中文字(MID,MATCH)

Excel-取出一個儲存格裡的英文字和中文字(MID,MATCH)

(2) MID(A3,ROW(1:20),1)>"z"

該公式用以判斷字元是否大於「z」字元,因為在 ASCII 編碼中,「z」字元的碼為英文字中最大者。若是傳回 FALSE,則代表該字元為英文字,否則為中文字。

Excel-取出一個儲存格裡的英文字和中文字(MID,MATCH)

(3) MATCH(TRUE,MID(A3,ROW(1:20),1)>"z",1)

利用 MATCH 函數找到每一個字元的位置,傳回 1,2,3,4,…。

其中參數「1」,讓 MATCH 傳回小於或等於尋找值的最大值。

Excel-取出一個儲存格裡的英文字和中文字(MID,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只是一個比較大的字數字,無特別的意義)

學不完.教不停.用不盡文章列表

arrow
arrow
    文章標籤
    Excel MID MATCH
    全站熱搜
    創作者介紹
    創作者 vincent 的頭像
    vincent

    學不完.教不停.用不盡

    vincent 發表在 痞客邦 留言(1) 人氣()