王志軍
如圖1所示,A列是很小一部分?jǐn)?shù)據(jù)源,每個(gè)單元格的數(shù)據(jù)以符號(hào)“/”作為間隔符組合在一起,例如“亞洲/中國(guó)/江蘇/蘇州”,現(xiàn)在希望提取其中的部分?jǐn)?shù)據(jù),雖然可以使用“分列”提取數(shù)據(jù),但由于這里的數(shù)據(jù)源并不規(guī)范,而且分列之后的整理也是相當(dāng)?shù)穆闊F鋵?shí),我們可以利用公式完成上述提取任務(wù):
一、提取第一個(gè)間隔符“/”前的數(shù)據(jù)
選擇B2單元格,在編輯欄輸入公式“=LEFT(A2,F(xiàn)IND(”/”,A2)-1)”,這里的FIND函數(shù)用來(lái)發(fā)現(xiàn)“/”在A2單元格中首次出現(xiàn)的位置,接下來(lái)使用LEFT函數(shù)從左向右提取該長(zhǎng)度的字符,公式執(zhí)行之后向下拖拽或雙擊填充柄,即可得到圖2所示的提取結(jié)果。
二、提取最后一個(gè)間隔符“/”后的數(shù)據(jù)
這個(gè)要求與前述要求正好相反,選擇C2單元格,在編輯欄輸入公式“=TRIM(RIGHT(SUBSTITUTE(A2,”/”,REPT(” ”,10 0》,10 0》”,“SUBSTITUTE(A2,”/”,REPT(“”,100》”這部分公式是將A2中的“/”替換為100個(gè)空格,接下來(lái)RIGHT函數(shù)從右邊提取100個(gè)字符,這100個(gè)字符必然包括了最后一個(gè)“/”后的數(shù)據(jù)以及大部分的空格,最后使用TRIM函數(shù)清除多余的空格,圖3即我們所需要的結(jié)果。
這里當(dāng)然也可以使用“100”之外的其他大數(shù)據(jù),主要作用是拉大數(shù)據(jù)之間的距離。
三、提取指定位數(shù)間隔符之間的數(shù)據(jù)
例如提取第2個(gè)“/”和第3個(gè)“/”之間的數(shù)據(jù),選擇D2單元格,在編輯欄輸入公式“=TRIM(MID(SUBSTITUTE(A2,”/”,REPT(””,100》,100,100》”,這個(gè)公式列之后的后續(xù)處理,在B2單元格輸入以下公式“=TRIM(MID(SUBSTITUTE($A2,”/”,REPT(””,100》,COLUMN(A1)*100-99,100》”,這里使用“COLUMN(A1)*100-99”取動(dòng)態(tài)區(qū)間,隨著公式的向右拖拽,依次提取第1-101-201個(gè)字符起的100個(gè)字符結(jié)果,最后依然使用TRIM函數(shù)清理空格。公式執(zhí)行之后向右、向下拖拽填充柄,很快就可以得到圖5所示的分列效果。
電腦知識(shí)與技術(shù)·經(jīng)驗(yàn)技巧2018年1期