王斌


同事前來求助,她最近在工作中遇到一個難題,如圖1所示,A列都是類似于“GT01上虞一PCBA原材料倉”的內容,現在要求將其中的名稱和倉庫內容分別提取出來,也就是分別提取“GT01”和“上虞-PCBA原材料倉”,但A列并非所有單元格都是十分規范的數據,例如“T2607A半成品倉”并沒有PCBA的內容,因此無法借助“分列”實現。由于實際的數據量十分巨大,手工提取顯然不在考慮之列,該如何解決這一高難度的問題呢?
第1步:提取“名稱”數據
經過分析,可以發現A列的“名稱”都出現在漢字字符的前面,因此我們可以考慮利用Excel 2016的“快速填充”解決這一問題:
在B2單元格手工輸入“GT01”作為填充示例,在B3單元格手工輸入“A466CPCBA”作為填充示例,繼續在B4單元格手工輸入“T2607A”,在輸入過程中會看到圖2所示的填充建議,直接按下回車鍵即可。如果使用的是2013版本,不會看到自動提示的填充建議,但可以在B2、B3、B4單元格結束填充示例的輸入之后,向下拖拽選擇需要填充的單元格區域,在“編輯”功能組依次選擇“填充→快速填充”,或者按下“ctrl+E”組合鍵,同樣可以完成快速填充。
第2步:去除多余的字符
完成快速填充之后,可以發現提取出來的“名稱”部分還存在“PCBA”的字符,這些內容需要被歸結到“倉庫”列,也就是說“名稱”列并不需要。我們可以通過替換去除這些內容,按下“Ctrl+H”組合鍵,打開“替換”對話框,查找“PCBA”,替換為空,即可得到圖3所示的效果。
第3步:提取“倉庫”數據
與“名稱”相比,“倉庫”數據更沒有統一的規律,因此這里無法借助“快速填充”進行提取。不過,由于已經將‘名稱”提取出來,A列剩余的內容自然也就是我們所需要的“倉庫”數據,因此可以借助公式實現:
選擇c 2單元格,在編輯欄輸入公式“=SUBSTITUTE(A2,B2,"")”,SUBSTITUTE函數的作用是對指定的字符串進行替換,“""”表示替換為空,上述公式的含義就是從A2單元格去除B2單元格的內容,公式執行之后向下拖拽或雙擊填充柄,很快就可以看到圖4所示的最終效果。
也可以考慮首先提取“倉庫”內容,在B2單元格手工輸入“上虞-PCBA原材料倉”作為填充示例,在B3單元格手工輸入“原材料倉”作為填充示例,在B4單元格繼續手工輸入“半成品倉”作為填充示例,輸入過程中會顯示圖5所示的填充建議,直接按下回車鍵即可,但相應單元格前面的字符會出現缺失現象,需要手工添加“PCBA”,因此操作較先提取“名稱”麻煩一些。不過,由于“PCBA”都是出現在“原材料倉”的前面,因此可以替換“原材料倉”為“PCBA原材料倉”,最后再利用公式提取“名稱”。