根據前一篇文章:Excel-取出一個儲存格裡的英文字和中文字(MID,MATCH)

如果中文字在前、英文字在後,該如何處理?

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

 

【公式設計與解析】

1. 取出中文字

儲存格B3:{=MID(A3,1,MATCH(TRUE,MID(A3,ROW(1:20),1)<="z",0)-1)}

這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動加上「{}」。

(1) MID(A3,ROW(1:20),1)

在陣列公式中取出儲存格A3字串中的每一個字元(每例取出20個字)。其中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 函數中搜尋 TRUE 的位置,在陣列公式中,MATCH 函數找到每一個字元的位置,傳回 1,2,3,4,…。

(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",0),99)}

這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動加上「{}」。

因為中文字在字串的後半段,所以利用 MID 函數由第(3)式的位置開始,取出99元。(99一個比較大的字數字,無特別的意義)

 

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

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

    學不完.教不停.用不盡

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