总结篇--无规律混合数字英文拆分技巧
送人玫瑰,手有余香,请将文章分享给更多朋友
动手操作是熟练掌握EXCEL的最快捷途径!
前一段时间我写了一篇帖子--细说数据拆分这点事,看完本篇后就都明白了,介绍了在多种情况下如何拆分数据的技巧。
现在我们一起着重来看一下,如果仅仅是数字、英文字符混合而成的字符串,我们怎样将他们拆分成两列。
LOOKUP函数
关于LOOKUP函数的使用,请参考帖子总结篇-LOOKUP函数实用终极帖。
思路:
用COLUMN(A:X)来产生一个新的数组{1,2,...24}
用LEFT函数分别提取“2,20,202...”,并形成一个新的数组
加负号是数字类型的数据变成负数
使用LOOKUP函数在数组中查找“1”
查找不到“1”,因此返回数组中最后一个数字类型的数据“-2020”
最后负负得正,得到正确的答案
其实,LOOKUP函数也可以处理数字和汉字混合的字符串,公式的技巧运用和本例是一样的。
SUBSTITUTE函数
关于SUBSTITUTE函数的用法请参考之前有一个帖子Substitute函数使用简介。
在单元格D2中输入“=--RIGHT(A2,SUM(LEN(A2)-LEN(SUBSTITUTE(A2,{0,1,2,3,4,5,6,7,8,9},""))))”并CTRL+SHIFT+ENTER回车即可。
在单元格C2中输入“=LEFT(A2,LEN(A2)-LEN(D2))”即可。
思路:
利用SUBSTITUTE函数用“”代替原字符串中0-9的数字
利用LEN函数计算替代后的字符串长度
用替代前的字符串的长度减去替代后的字符串的长度,得出被替代的0-9每个数字的个数
将以上求和,得出原字符串中数字的位数
最后分别用LEFT函数和RIGHT函数将文本和数字分别提取出来。
同样,这个技巧也是可以用在汉字与数字混合的字符串拆分。
综合应用
当英文字符串和数字构成文本时,由于无法使用SEARCHB函数嵌取得首个数字的位置,就可以利用下面的方法来取得数字。
在单元格B2中输入“=-LOOKUP(1,-MID(A2,MIN(FIND(ROW($1:$10)-1,A2&1/17)),ROW($1:$15)))”
并CTRL+SHIFT+ENTER回车,向下拖曳即可。
思路:
利用ROW函数构造0-9的数组
1/17的值包含了0-9所有的数字,和待拆分的单元格结合在一起可以避免FIND函数查找不到数字而返回错误值
利用FIND函数查找10个数字在文本中的位置,结合MIN函数返回在文本中的最小位置,即首个数字的位置
利用MID函数向右截取长度为1-15的字符串
利用LOOKUP函数取得正确结果
利用WORD
例如下面这个例子。毫无规律可言。而且,数字的长度超过15位,普通的函数也处理不了。那么有没有办法来进行拆分呢?
答案是肯定的!
将它们复制到WORD中,单击CTRL+H,调出替换对话框。在“查找内容”中输入“^$”;在“替换为”中单击一下鼠标。
接下来单击全部替换。
这样,所有的英文字符都被替换掉了。将数字复制回到EXCEL中即可。
精彩还没有结束!接下来我们将英文字符也拆分出来。
相同的操作,将字符串复制到WORD中,调出替换对话框。输入“^#”。
点击全部替换后,所有的数字被替换。
将文本复制回到EXCEL中。
“^$”和“^#”分别表示“任意字母”和“任意数字”,是WORD的通配符。
有兴趣的朋友们可以去搜索一下WORD的通配符列表!
最后一种方法,有效地解决了EXCEL将超过15位的数字默认为0的限制,有效地解决了数据拆分的难题!
数据拆分是EXCEL日常工作内容之一,应熟练地应用!
-END-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
我就知道你“在看”
戳原文,更有料!免费模板文档!