無規律文本拆分,這些函數你得會

今天文章來源於表格學員訓練營群內答疑,混合文本拆分。


其實拆分不難,只要規則明確就好辦。就怕規則不清晰,或者規則太多。那真是,Oh,my god.


無規律文本拆分,這些函數你得會


如上圖所示進行拆分,文字表達實在是有點難,所以小熊變身靈魂畫手了,大概就是這個意思,文本拆分成3段,第一段是區域,第二段是具體店面,第三段是產品類別。


乍一看,沒思路,漿糊啊。仔細一看,還是沒思路,更多漿糊啊。


無規律文本拆分,這些函數你得會


按照字符長度分列,長度不固定,所以只能試試利用關鍵字拆分。


第一段是區域,關鍵字是“餐飲”或者“餐飲工業”。

第二段是店面,這個毫無規律可言,實際上有好幾百個店面。

第三段是產品,有很多細分品種,但是可以歸屬於幾個大類。


所以思路是構建關鍵字列表,提取出第一段和第三段,替換法截取第二段。


一、提取區域FIND/IFERROR/MAX/LEFT


直接看公式,數組公式哦,輸入完畢之後要按Ctrl+shift+enter三鍵結束。


LEFT(A2,MAX(IFERROR(FIND({"餐飲";"工業"},A2),0))+1)


首先分析出,第一段的關鍵字是“餐飲“或者是”工業”。所以只要想辦法找到這兩個詞組出現的位置就可以。接下來用left提取左側字符。


無規律文本拆分,這些函數你得會


Find函數查找指定字符在字符串中出現的起始位置。由於這裡面要查找多個字符,所以用的是數組公式。


FIND({"餐飲";"工業"},A2)查找關鍵字在字符串中出現的位置,返回的是6;#VALUE!,關鍵字“工業”查找不到,所以需要用iferror錯誤屏蔽。


由於有些文本中所有關鍵字都出現,所以需要用max提取出最後一個關鍵字的位置。然後用left提取左側字符得到區域。


二、提取產品FIND/IFERROR/MAX/MID


產品名稱的列表稍微多一些,但是思路是一樣的。


MID(A2,MAX(IFERROR(FIND({"小熊";"專用麵包粉";"蛋糕粉"},A2),0)),20)

無規律文本拆分,這些函數你得會


在確定了關鍵字段第一個字符的位置之後,用Mid函數從中間提取。由於不知道要提取的字符有多長,指定一個比較大的數字就可以,這裡用的是數字20。


三、提取店面LEN/MID


其實這裡面最難提取的是店面,因為根本就不可能構造關鍵字列表,實在是太多了。所以我們取巧用的是排除法。


MID(A2,LEN(B2)+1,LEN(A2)-LEN(B2)-LEN(D2))


MID函數從中間提取,第一參數,從第幾個字符開始提取,由第一段區域的長度確定,中間要提取出多少個字符,這個原本很難確定,但是現在已經提取出第一段和第三段,所以由LEN(A2)-LEN(B2)-LEN(D2)就可以確定中間提取多少個。


無規律文本拆分,這些函數你得會


今天的示例看起來很複雜,但是實際上只要找到規律,結合函數其實還是挺簡單的。


作者 小熊

Excel表格學院聯合創始人,團隊核心成員。


分享到:


相關文章: