Excel你的數據太不規範了!怎麼拆分?

漢字和數字拆分的問題,最近答疑群裡問的比較多,我會逐步歸納總結一些方法給大家,遇到問題時,可以查詢一下文章中的方法。

昨天的問題比較簡單,但是今天的問題就稍有點複雜了,如下圖,數字在文字中間,這種怎麼提取數字呢?

Excel你的數據太不規範了!怎麼拆分?

解決方法

1、首先講一點,這種數據都是業務管理不規範造成的,一種是軟件設計不合理,第二種是表格設計不合理,把不同類型的數據混到一個字段或單元格里了;這種問題正確的做法是多增加幾個字段或幾列數據,把不同的數據分開填寫。

2、這種數字提取,在Excel2016中用快速填充CTRL+E提取是非常方便的。

方法:首先在D2單元格輸入第一個需要提取的數字:6189411。


Excel你的數據太不規範了!怎麼拆分?

3、然後按CTRL+E,瞬間所有數字全都提取出來了

Excel你的數據太不規範了!怎麼拆分?

4、當然,使用公式也是可以拆分的,如下圖,在D2單元格輸入公式:=-LOOKUP(1,-MIDB(C2,SEARCHB("?",C2),ROW($1:$100))),然後向下複製公式,所有數字都自動提取出來了。

Excel你的數據太不規範了!怎麼拆分?

公式說明

1、上面的公式比較複雜,不太好理解,這裡做一些說明幫助大家理解這個函數。

2、SEARCHB("?",C2)是查找第一個數字所在的位置,每個漢字佔2個字節,如D2單元格,第一個數字在第7個位置。

Excel你的數據太不規範了!怎麼拆分?

3、ROW(1:100)是提取行號,也就是生成了1~100個數字。

Excel你的數據太不規範了!怎麼拆分?

4、然後是MIDB,是截取,從第1個數字開始截取,分別向右截取1個、2個.......100個長度,得到一個數量為100的數組,效果如下圖。

Excel你的數據太不規範了!怎麼拆分?

5、最後是LOOKUP函數用1在上面截取的100個數據中搜索,會搜索到最後一個數字上,並返回這個數字(6189411),如果有漢字,就視為錯誤。

說明:公式裡的減號,是把文本轉換數字,公式外的減號是把負數變成正數。

Excel你的數據太不規範了!怎麼拆分?


分享到:


相關文章: