汉字和数字拆分的问题,最近答疑群里问的比较多,我会逐步归纳总结一些方法给大家,遇到问题时,可以查询一下文章中的方法。
昨天的问题比较简单,但是今天的问题就稍有点复杂了,如下图,数字在文字中间,这种怎么提取数字呢?
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),如果有汉字,就视为错误。
说明:公式里的减号,是把文本转换数字,公式外的减号是把负数变成正数。