漢字和數字拆分的問題,最近答疑群裡問的比較多,我會逐步歸納總結一些方法給大家,遇到問題時,可以查詢一下文章中的方法。
昨天的問題比較簡單,但是今天的問題就稍有點複雜了,如下圖,數字在文字中間,這種怎麼提取數字呢?
解決方法
1、首先講一點,這種數據都是業務管理不規範造成的,一種是軟件設計不合理,第二種是表格設計不合理,把不同類型的數據混到一個字段或單元格里了;這種問題正確的做法是多增加幾個字段或幾列數據,把不同的數據分開填寫。
2、這種數字提取,在Excel2016中用快速填充CTRL+E提取是非常方便的。
方法:首先在D2單元格輸入第一個需要提取的數字:6189411。
3、然後按CTRL+E,瞬間所有數字全都提取出來了
4、當然,使用公式也是可以拆分的,如下圖,在D2單元格輸入公式:=-LOOKUP(1,-MIDB(C2,SEARCHB("?",C2),ROW($1:$100))),然後向下複製公式,所有數字都自動提取出來了。
公式說明
1、上面的公式比較複雜,不太好理解,這裡做一些說明幫助大家理解這個函數。
2、SEARCHB("?",C2)是查找第一個數字所在的位置,每個漢字佔2個字節,如D2單元格,第一個數字在第7個位置。
3、ROW(1:100)是提取行號,也就是生成了1~100個數字。
4、然後是MIDB,是截取,從第1個數字開始截取,分別向右截取1個、2個.......100個長度,得到一個數量為100的數組,效果如下圖。
5、最後是LOOKUP函數用1在上面截取的100個數據中搜索,會搜索到最後一個數字上,並返回這個數字(6189411),如果有漢字,就視為錯誤。
說明:公式裡的減號,是把文本轉換數字,公式外的減號是把負數變成正數。
閱讀更多 Excel函數與VBA技巧 的文章