excel提取技巧:單元格部分內容提取的三種方法
問題來自於一位群友的求助,大家請看圖:
數據源在A列,包含了很多項信息,現在需要從中提取出容值、封裝和耐壓三項數據,不難發現,需要提取的數據具有一定的規律性,分別是數據源的第二、三、四個逗號之後的數據。
當我們遇到問題的時候,找到規律是解決問題的關鍵。現在規律找到了,因此解決方法也就有了。這裡有三種方法,從最簡單的快捷鍵操作到經典的吃遍天下的公式都有,以下分別進行介紹。
1.快速填充法(Ctrl+ E)
評價:
優勢:簡單、易用。
劣勢:還沒有發現。
操作要點:
(1)在B2單元格輸入0402時,要先輸入一個單引號,或者把單元格修改為文本格式再輸入;
(2)只輸入一個數據可能無法通過Ctrl+E得到正確結果,這時候連續輸入兩個數據就可以了。
提示:組合鍵Ctrl+ E只能在Excel2013及以上的版本才能使用。
就本例而言,Ctrl+ E略微顯得有些麻煩,因此再介紹一種用分列的處理方法。
2.分列法
評價:☆
優勢:簡單、易用。
劣勢:數據量大了後工作量還是比較重。
操作要點:
(1)分列過程中使用逗號進行分隔;
(2)需要跳過不導入的列;
(3)對容值這列數據設置為文本格式;
(4)手工指定數據存放的目標區域。
相比第一個方法來說,使用分列就簡單了許多,同時通過這個例子,大家也可以對分列這個強大的功能有了深入的了解。
使用分列雖然比較方便,但如果經常要處理這類數據的話,操作量也是蠻大的,最後我們再來分享一個公式的做法。
3. TRIM-MID-SUBSTITUTE-REPT組合公式法
使用公式:=TRIM(MID(SUBSTITUTE($A2,",",REPT(" ",99)),COLUMN(B1)*99,99))
右拉下拉即可得到所需的結果。
評價:☆
優勢:快速,對付大量數據尤其實用,並且可以修改參數用於更複雜的字元提取。
劣勢:公式不好記。
公式解析:
這個公式里用到了五個函數,其中有我們比較熟悉的MID和COLUMN,也有我們不太常用的TRIM、SUBSTITUTE和REPT函數。下面簡單來解釋一下這個公式的思路。
公式的核心部分是SUBSTITUTE($A2,",",REPT(" ",99)),這部分的作用是進行替換。
SUBSTITUTE函數格式為:
SUBSTITUTE(在哪裡替換,替換什麼,換成什麼,換第幾個)
例如:
公式=SUBSTITUTE($A2,",","-",3)的效果就是把A2單元格的第3個逗號換成-號。
當省略第四參數的時候,代表逗號全部替換,如圖:
本例中是把A2中的逗號換成了REPT(" ",99),也就是99個空格。
REPT函數的格式為:
REPT(要重複的字元,重複次數)
例如:
REPT(「」,5),就是將重複五次。
至於公式中為什麼要用99個空格,完全是一種套路,繼續看完公式的其他部分或許就理解了。
使用SUBSTITUTE得到的數據還需要用MID函數來進行提取。MID函數大家應該比較熟悉了,基本格式為:MID(要提取的數據,從什麼位置開始取,取幾個字)。在本例中要提取的數據就是SUBSTITUTE(),而要提取的容值的位置原本是在第2個逗號之後,由於我們把逗號換成了99個空格,要提取的位置前面至少有兩組空格也就是2*99個字元;相應封裝的提取的位置是3*99,耐壓的是4*99。採用公式右拉,所以這裡用COLUMN(B1)*99作為提取位置。MID的最後一個參數是要取幾個字元,為了保險起見,統一提取99個字。
也就是說,經過MID(SUBSTITUTE(),COLUMN(B1)*99,99)這部分公式運算後,得到的結果是我們實際需要的容值數據包含在前後空格中。為了便於大家理解,臨時將空格換成-,可以直觀地看出效果:
我們肯定不希望得到的結果中包含有大量無用的空格,因此在最外層套一個TRIM就可以去掉這些空格。TRIM函數只有一個參數,功能就是去掉字元串中多餘的空格。
本例使用的實際上也是非常經典的一個公式組合:TRIM-MID-SUBSTITUTE-REPT組合。公式理解起來需要一定的基礎,新手暫時無法理解的時候,可以先掌握公式的套路,根據自己的需要修改參數。
閑言妄語:
估計很多小白看不懂這個公式的套路哦~~小編心痒痒,就來現個丑,打個比方——沖水撈死魚。
一堆死魚,密密麻麻,一個靠一個。現在給你一個簍子(MID函數)要你從死魚中把其中的紅魚撈出來。要求是不要碰到其它魚。啷個辦?把魚分開(SUBSTITUTE函數替換逗號增大間距)呀!咋個分開?沖水(加空格)呀,使勁沖水(用99個空格,勁夠大了),魚分開了,然後一簍子就把紅色死魚撈起來了,雖然撈魚的時候水(空格)肯定也會帶上,但水馬上就從網孔(TRIM函數)中漏掉(被排除了)了,只剩需要的紅魚。
為啥用水(空格)而不是其他東西(譬如逗號)來增加間距呀?網孔(TRIM函數)只適合濾水(逗號就濾不走)呀。為啥要衝那麼多水(99個空格)?因為分得越開,越可以忽略其他魚的影響(字元數不等的影響),簍子(MID函數)的口徑(取字元的字元數)就可以越大(99),只需要給一個下簍子的大概位置(並非紅魚的準確位置,由COLUMN(B1)*99實現),就肯定只撈到水和紅魚。
****部落窩教育-excel快速填充****
原創:老菜鳥/部落窩教育(未經同意,請勿轉載)
更多教程:部落窩教育(http://www.itblw.com)
微信公眾號:exceljiaocheng
推薦閱讀:
TAG:Excel公式 | MicrosoftExcel | 表格 |