王志軍
最近在工作中遇到一個(gè)問題,如圖1所示,A列是包含中文和英文的混合字符串,現(xiàn)在需要將其區(qū)分開來,例如“Abel亞伯(Abelard的昵稱)”分隔為“Abel”和“亞伯(Abelard的昵稱)”,雖然可以復(fù)制到Word利用替換功能查找替換為空,但由于源數(shù)據(jù)還混雜了一些類似于“Ahdard的昵稱”的字符串,因此這一方法并不現(xiàn)實(shí)。那么除了手工操作之外,有沒有簡(jiǎn)單一些的方法呢?
我們可以借助數(shù)組公式完成上述任務(wù),選擇B1單元格,在編輯欄輸入公式“=LEFT(A1,MATCH(1=1,LENB(MID(A1,ROW($1:$20),1))=2,)-1)”,這里的ROW函數(shù)可以返回一個(gè)引用的行號(hào),MID函數(shù)可以從文本字符串中指定的起始位置起返回指定長(zhǎng)度的字符,LENB函數(shù)則可以返回文本中所包含的字符數(shù),此時(shí)漢字按2個(gè)字節(jié)進(jìn)行計(jì)算,MATCH函數(shù)可以返回符合特定值特定順序的項(xiàng)在數(shù)組中的相對(duì)位置,最后利用LEFT函數(shù)從第一個(gè)字符開始返回指定個(gè)數(shù)的字符,按下“Ctrl+Shift+Enter”組合鍵轉(zhuǎn)換為數(shù)組公式。公式執(zhí)行之后向下拖拽或雙擊填充柄,很快就可以看到圖2所示的效果。后面的內(nèi)容則可以使用SUBSTITUTE函數(shù)進(jìn)行替換,在C2單元格輸入公式“=SUBSTITUTE(Al,Bl,””,1)”,這里的第三參數(shù)“1”不可省略,否則會(huì)導(dǎo)致后面的英文字符也被同時(shí)替換,例如“Abel亞伯(Abelard的昵稱)”得到“亞伯(ard的昵稱)”的效果,那么就不是我們的原意了,公式執(zhí)行之后向下拖拽或雙擊填充柄,最終效果如圖3所示。
C列的字符串,也可以使用“=MID(A1,MATCH(1=1,LENB(MID(A1,ROW($1:$20),1))=2,),99)”的數(shù)組公式,效果完全相同。endprint
電腦知識(shí)與技術(shù)·經(jīng)驗(yàn)技巧2017年9期