問題來自一位群友的求助。
數據源在A列,包含了很多項信息,現在需要從中提取出容值、封裝和耐壓三項數據,不難發現,需要提取的數據具有一定的規律性,分別是數據源的第二、三、四個逗號之后的數據。
當我們遇到問題的時候,找到規律是解決問題的關鍵。現在規律找到了,因此解決方法也就有了。這里有三種方法,從最簡單的快捷鍵操作到經典的吃遍天下的公式都有,以下分別進行介紹。
快速填充法(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組合。公式理解起來需要一定的基礎,新手暫時無法理解的時候,可以先掌握公式的套路,根據自己的需要修改參數。
閑言妄語:
一堆死魚,密密麻麻,一個靠一個?,F在給你一個簍子(MID函數)要你從死魚中把其中的紅魚撈出來。要求是不要碰到其他魚。啷個辦?把魚分開(SUBSTITUTE函數替換逗號增大間距)呀!咋個分開?沖水(加空格)呀,使勁沖水(用99個空格,勁夠大了),魚分開了,然后一簍子就把紅色死魚撈起來了,雖然撈魚的時候水(空格)肯定也會帶上,但水馬上就從網孔(TRIM函數)中漏掉(被排除了)了,只剩需要的紅魚。
為啥用水(空格)而不是其他東西(譬如逗號)來增加間距呀?網孔(TRIM函數)只適合濾水(逗號就濾不走)呀。為啥要沖那么多水(99個空格)?因為分得越開,越可以忽略其他魚的影響(字符數不等的影響),簍子(MID函數)的口徑(取字符的字符數)就可以越大(99),只需要給一個下簍子的大概位置(并非紅魚的準確位置,由COLUMN(B1)*99實現),就肯定只撈到水和紅魚。