如何將缺少規(guī)律的產(chǎn)品代碼規(guī)格型號分別拆分提取?
?
作者:EXCEL應(yīng)用之家來源:部落窩教育發(fā)布時間:2020-12-29 16:19:47點擊:8230
編按:
產(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. SUBSTITUTE(B2,C2,))部分顯示的是用空白替換在B2字符中,與C2相同的字符內(nèi)容,即留下除去C2字符內(nèi)容的B2的剩下字符。
2. =TRIM()即除了單詞之間的單個空格外,清除字符中所有的空格。
這個題目思路整體上比較復(fù)雜,小伙伴們一時不能理解也沒有關(guān)系,在實際工作中如果遇到類似的問題會套用即可。
編后語:
如果沒有看懂的小伙伴需要詳細解析,請在公眾號上回復(fù)規(guī)格型號拆分即可得到解析文章。
本文配套的練習課件請加入QQ群:902294808下載。
做Excel高手,快速提升工作效率,部落窩教育《一周Excel直通車》視頻和《Excel極速貫通班》直播課全心為你!
掃下方二維碼關(guān)注公眾號,可隨時隨地學習Excel:
相關(guān)推薦:
別再為拆分、合并工作表鬧心啦!最實用的7種方法,分分鐘搞定它?。ú鸱制?/font>
會用FREQUENCY函數(shù)統(tǒng)計excel數(shù)據(jù)的人,都是高手!
版權(quán)申明:
文本作者EXCEL應(yīng)用之家;同時部落窩教育享有專有使用權(quán)。若需轉(zhuǎn)載請聯(lián)系部落窩教育。
最熱教程
- 像綠皮火車一樣長像珠穆拉瑪峰一樣高的Excel表怎么操作才方便?
- Power Query實戰(zhàn):按指定次數(shù)遞增數(shù)據(jù)
- 2019年全網(wǎng)最全—excel提取身份證信息合集?。ńㄗh收藏)-下篇
- 明明沒有重復(fù),Excel卻判定數(shù)據(jù)重復(fù),這是怎么回事?
- 文本格式的求和,及求和中最容易出現(xiàn)的問題解疑
- 致命缺陷:不懂一維表!
- 函數(shù)組合思維,你有嗎?
- 學會這2個公式,整理考勤數(shù)據(jù)只要一分鐘
- 就算被說是拍馬屁也成,今天你應(yīng)該這樣發(fā)Excel報表……
- 如何計算Excel單元格中的算式,四種求和方法請收好!