总结篇--无规律混合汉字数字拆分技巧
送人玫瑰,手有余香,请将文章分享给更多朋友
动手操作是熟练掌握EXCEL的最快捷途径!
上一篇我们介绍了英文和数字混合字符串的拆分技巧。由于这样的技巧实在是太重要了,因此今天我将再介绍一下当汉字和数字混合时的拆分技巧。
LOOKUP函数
关于LOOKUP函数的使用,请参考帖子总结篇-LOOKUP函数实用终极帖。
在单元格C2中输入“=-LOOKUP(1,-LEFT(A2,COLUMN(A:X)))”即可。
思路:
用COLUMN(A:X)来产生一个新的数组{1,2,...24}
用LEFT函数分别提取“1,16,168...”,并形成一个新的数组
加负号是数字类型的数据变成负数
使用LOOKUP函数在数组中查找“1”
查找不到“1”,因此返回数组中最后一个数字类型的数据“-168318”
最后负负得正,得到正确的答案
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,-MIDB(A2,SEARCHB("?",A2),COLUMN(A:W)))”并向下拖曳即可。
思路:
利用SEARCHB函数的通配符查找功能,查找字符串中首个单字节字符
COLUMN(A:W)提供了1-23这样一个数组
利用MIDB函数从首个单字节字符开始向右依次提取长度为1-23的字符串,通过负运算将数字转换为负数,文本转换为错误值
利用LOOKUP函数查找整数,并返回最后一个负数
负运算得到正确的结果
利用WORD
如图,例如下面的数据,EXCEL普通公式是无法解决此类字符串的拆分的。
在WORD的帮助下,问题轻松解决。
复制字符串到WORD中,打开替换对话框,在查找中输入“[!^1-^127]”;在替换中单击一下,勾选“使用通配符”。看看会发生什么!
单击“全部替换”后,
将数据复制回EXCEL即可。
同样的操作,我们也可以提取中文。在替换对话框中输入“[^1-^127,a-z,A-Z,0-9]”,在替换中单击一下,勾选“使用通配符”,看看会发生什么!
^1-^127:表示所有西文字符
a-z:表示所有小写英文字符
A-Z:表示所有大写英文字符
0-9:表示所有数字
[]:表示指定的字符之一
最后,将数据复制回EXCEL即可。
结束语
通过这两天的例子,我们学会了如何利用函数公式,以及配合WORD来实现数字英文混合字符串,汉字数字混合字符串的数据拆分。有一点特别重要,通过和WORD的配合,解决了EXCEL不能处理超过15位数字的限制。今后,任意长度的字符串拆分将不会有任何问题
-END-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
本期阅读分享赠书书目为:
赠书规则:
本公众号下文章“阅读最多”排名和“分享最多”排名各自第一名的朋友将会获赠一本
截止时间:2021-5-9
我就知道你“在看”
注意!前方有红包挡道!速点阅读原文消灭之!