二維碼 購物車
部落窩在線教育歡迎您!

如何將缺少規(guī)律的產(chǎn)品代碼規(guī)格型號分別拆分提取?

?

作者:EXCEL應(yīng)用之家來源:部落窩教育發(fā)布時間:2020-12-29 16:19:47點擊:8230

分享到:
0
收藏    收藏人氣:0人
版權(quán)說明: 原創(chuàng)作品,禁止轉(zhuǎn)載。

編按:
產(chǎn)品統(tǒng)計表中每個產(chǎn)品的代碼和規(guī)格型號記錄在同一個單元格里,并且產(chǎn)品代碼和規(guī)格型號都缺乏統(tǒng)一的規(guī)律。如何才能把產(chǎn)片代碼和規(guī)格型號拆分出來分別提取在不同單元格里呢?簡單來說,就是如何拆分和提取無明顯規(guī)律的數(shù)據(jù)。只有一個辦法,仔細觀察數(shù)據(jù),找出特點,然后把這些特點轉(zhuǎn)化為統(tǒng)一的規(guī)律。本例就是如此??!


今天這個題目比較有意思。

在核查產(chǎn)品時,為了不遺漏,我們往往需要把產(chǎn)品名稱中的代碼和規(guī)格型號拆分出來方便統(tǒng)計核對。

下表我截取了一份公司的《標準件規(guī)格統(tǒng)計表》給大家。在遵循一定規(guī)則的前提下,標準件的規(guī)格型號的表達形式有千種萬種:

 



 

現(xiàn)在我們需要將標準件的名稱拆分為兩部分:代碼(描述)部分及具體的規(guī)格型號,如下表。

 



 

這就牽扯到數(shù)據(jù)拆分,而凡是這種操作都離不開查找、引用等函數(shù)。所以,這里的思路是:找到代碼(描述)部分和規(guī)格部分的界限,再利用提取函數(shù)進行提取和拆分。

但是觀察一下這份源數(shù)據(jù)中產(chǎn)品的代碼和規(guī)格型號很雜亂,沒有規(guī)律可言。那如何才能將兩者精確拆分開呢?

 

真的沒有規(guī)律嗎?其實還是有一定規(guī)律的:

1)凡是有“×”符號的規(guī)格型號都是從第一個“×”前的數(shù)字開始的

2)有一個產(chǎn)品的規(guī)格型號是從空格后開始的(JGF φ5.2 φ5.2

3)沒有“×”符號和空格的兩個零件的規(guī)格型號可以虛擬添加“×”,然后也是從第一個“×”前的數(shù)字開始的

RV0.75 RV0.75× 0.75×

RV1 RV1× 1×

 

如何運用這里的規(guī)律呢?當然還得繼續(xù)整合或者創(chuàng)造規(guī)律:

1)和(3)均是從第一個“×”前的最后一個非數(shù)字(字母、漢字)后開始規(guī)格型號的

2)也可以認為是從第一個空格前的最后一個非數(shù)字(字母、漢字)后開始規(guī)格型號的

 

到了這里,我們可以得出一個思路(盡管還不知道用什么函數(shù)實現(xiàn)):

將產(chǎn)品信息看作是一串數(shù)字、非數(shù)字組成的信息,然后從左向右提取到第一個分界標志“×”或空格前的最后一個非數(shù)字處,即可得到代碼(描述)部分;剩下的就是規(guī)格型號部分。

這個思路的關(guān)鍵:將信息的每個字符判斷成一串代表數(shù)字和非數(shù)字的序列;用“×”或空格作為參考位置,然后向前尋找最后一個非數(shù)字的字符位置。

 

思考十秒鐘,讓我們一起來燒腦吧!

 

 

 

在單元格C2中輸入公式“=LEFT(B2,MATCH(1,FREQUENCY(1-FIND({"×"," "},B2&"× "),-ISERR(-(0&MID(B2&"× ",ROW($1:$99),1)))*ROW($1:$99)),))”并向下拖曳即可。

 

函數(shù)解析:

a)   FIND({"×"," "},B2&"× ")部分用于獲得參考位置,1-FIND(),其結(jié)果為{-6,-12},將參考位置變成負數(shù)并向前移一位。

為什么B2要添加后綴"× " ×和空格)?我們用第一個“×”和" " 的位置作為參考,添加后綴"× "可以令FIND函數(shù)不論如何都能查找到"×"" ",避免FIND函數(shù)報錯。

b)   -ISERR(-(0&MID(B2&"× ",ROW($1:$99),1)))*ROW($1:$99))部分返回一個序列數(shù)組,每個負數(shù)對應(yīng)一個非數(shù)字字符(字母或者漢字、符號),每個0對應(yīng)一個數(shù)字字符。得到的序列如下:

{-1;0;0;-4;-5;0;-7;0;0;0;0;-12;0;0;0;0;0;……}(此處只截取了序列前方部分)

字符串B2后添加"× "是為了讓字符串與上面查找的字符串保持一致,避免后續(xù)出現(xiàn)計算錯誤。

c)   FREQUENCY()部分,計算參考位置前移后數(shù)組{-6,-12}在序列中各值段的出現(xiàn)頻率。根據(jù)FREQUENCY函數(shù)的特性,分別在-5-12的位置上各計頻1,得到如下序列:

{0;0;0;0;1;0;0;0;0;0;0;1;0;0;0;0;0;……}(此處只截取了序列前方部分)

d)   再利用MATCH函數(shù)查找1,返回上述序列值中第一個1的位置5。至此得到了“×”和空格前的最后一個非數(shù)字字符的位置。

e)   最后用LEFT函數(shù)提取5個字符得到描述部分H05RN。

 

代碼部分完成后,規(guī)格型號部分就非常簡單了,使用SUBSTITUTE函數(shù)配合TRIM函數(shù)就可以完成。

 



 

1.   SUBSTITUTEB2,C2,))部分顯示的是用空白替換在B2字符中,與C2相同的字符內(nèi)容,即留下除去C2字符內(nèi)容的B2的剩下字符。

2.   =TRIM()即除了單詞之間的單個空格外,清除字符中所有的空格。

 

這個題目思路整體上比較復(fù)雜,小伙伴們一時不能理解也沒有關(guān)系,在實際工作中如果遇到類似的問題會套用即可。

編后語:

如果沒有看懂的小伙伴需要詳細解析,請在公眾號上回復(fù)規(guī)格型號拆分即可得到解析文章。

本文配套的練習課件請加入QQ群:902294808下載。

Excel高手,快速提升工作效率,部落窩教育《一周Excel直通車》視頻和《Excel極速貫通班》直播課全心為你!

掃下方二維碼關(guān)注公眾號,可隨時隨地學習Excel

IMG_256

相關(guān)推薦:

別再為拆分、合并工作表鬧心啦!最實用的7種方法,分分鐘搞定它?。ú鸱制?/font>

價格帶統(tǒng)計就用FREQUENCY

會用FREQUENCY函數(shù)統(tǒng)計excel數(shù)據(jù)的人,都是高手!

怎么用vlookup在兩個查找區(qū)域里查找?

版權(quán)申明:

文本作者EXCEL應(yīng)用之家;同時部落窩教育享有專有使用權(quán)。若需轉(zhuǎn)載請聯(lián)系部落窩教育。