close

2097

快速拆解儲存格技巧中英文對拆函數一看即會

實用性

●○○

難易度

●○○○

範本檔

2097.XLSX

Hello,大家好,我是錦子老師。今天跟大家來談談如何拆解儲存格內容。我們經常會遇到,中英字元混合的儲存格,需要將中文部分提取出來。一般皆透過函數拆解,在講解函數之前,我們首先要了解,字元和字數在計算機語言裡面的區別。「台灣銀行(Bank Of Taiwan)」這個內容,字元包含24個字元,20個字。不難得知,中文字佔2個字元,英文或數字佔1個字元。符號更簡單,有1個就是1個。

這裡我們用LENB函數,可以求出A1儲存格包含了多少字元(24)

公式:LENB(A1)

同理用LEN函數,求出A1儲存格,包含多少字(20)

公式:LEN(A1)

如果你儲存格內容都是英文在右,中文在左。那直接套用=LEFT(A1,LENB(A1)-LEN(A1)),函數的意思就是左向右數,利用字數與字元差距(4),正好把中文字部分取出來。

如果要取英文,那就從右往左數,用=RIGHT(A1,2*LEN(A1)-LENB(A1)),將字數乘2(40),減去字元數(24),大家想想,字數乘以2減去所有字元,這些多出來的字節,正好就是英文字所佔的位數。16位,然後用RIGHT提取16位,就能達到我們的效果。

那麼對於中英文前後混合的內容,要快速的提取中文,可以使用這個公式。
=MID(A1,MATCH(" ",MIDB(A1,ROW(INDIRECT("1:"&LEN(A1)+1)),1),0),LENB(A1)-LEN(A1))

輸入完畢按TRL+SHIFT+ENTER三鍵在公式前後加上{}表示是陣列公式,向下複製就能得出結果。

公式解析

有興趣的小夥伴可以看看,這個公式為什麼這麼寫。首先是INDIRECT("1:"&LEN(A1)+1),根據A1儲存格的字數,用INDIRECT形成121的字串。

image

第二層函數ROW(121),為了得到121的數組。

MIDB(A1,ROW(INDIRECT("1:"&LEN(A1)+1)),1),利用MIDB函數,對A1儲存格{121}的數組提取對應的數值,得到{" ";" ";" ";" ";" ";" ";" ";" ";"(";"B";"A";"N";"K";" ";"O";"F";" ";"T";"A";"I";"W";"A";"N";")"}的數組結果。

再用MATCH函數,以「 」進行查找,查看第一次「 」出現的位置,大家比對一下,MIDB函數的結果數組,第一次出現「 」的位置是1

在最外面用MIDA114就是A1儲存格格,從第1個字開始,擷取4個字,得出了我們的結果。

這裡的難點在於MIDB函數,這是對於{121}數組結果的傳回。如果是中文字(或者全形英文數字),MIDB會傳回空格。

在這裡,幫幫希望大家了解。這個函數對於混排提取中文可以實現一鍵成型。但是如果字符串是像這樣「OK」前後皆有英文或符號,或者使用了全形輸入內容「office幫幫忙」也不適用,沒有完全萬能的公式,只有大家依據規則輸入,以後的操作才能更方便簡單。


arrow
arrow
    創作者介紹

    錦子老師 發表在 痞客邦 留言(0) 人氣()