如果长字符串超过15位用Excel LOOKUP函数提取出错的

2020-12-23


上一篇文章《根据入职时间计算工龄补贴》,读者看后提出了一个疑问,如果长字符串超过15位用LOOKUP函数提取出错,正确应该如何提取? 善于动脑思考是个好读者,长时间不动脑,脑子会生锈的。今天,小编就来聊一下字符提取的运用。 数字允许最多的位数为15位,超出部分就以0显示,所以这里不能用LOOKUP函数提取。身份证那么有规律,都是18位,提取是非常简单的。 =RIGHT(A2,18) 在很多时候,并不都是固定位数,就像每个银行的账号,位数是不一样的。 书籍也同样,分类也会有长短。 其实数字跟字母在某种情况下,可以划分为一类,今天重点讲这个,如何将位数不确定的字符分离? 在Excel中文状态下的标点符号和汉字都属于双字节,也就是用LENB函数统计的时候,一个字算两次。 在英文状态下的符号、字母和数字都属于单字节,也就是用LENB函数统计的时候,一个字算一次。 而用LEN函数统计出来都是一样的,一个就算一次。 为了更直观,将双字节的全部归为汉字,单字节的全部归为字母。 字节数: =LENB(A2) 总字符数: =LEN(A2) 汉字个数: =B2-C2 汉字的字节数会比字母的字节数多1个,多3个就代表有3个汉字。 现在要提取右边的汉字,就变得很简单: =RIGHT(A2,D2) D2这个换成B2跟C2单元格的公式就变成最终的: =RIGHT(A2,LENB(A2)-LEN(A2)) 知道了汉字的个数,字母的个数也就出来了,也就是总字符数减去汉字的个数。 =LEN(A2)-(LENB(A2)-LEN(A2)) 这个公式可以合并起来变成: =2*LEN(A2)-LENB(A2) 现在从左边提取字母,公式也就出来了: =LEFT(A2,2*LEN(A2)-LENB(A2)) 前面的银行账号提取跟书籍分类提取,这个自己依样画葫芦就出来了。 其实Excel公式很有趣,有一点数学的思维,然后不断的动脑思考,一步步转换。自从迷上了公式,就不再玩游戏了,这个可比玩游戏有趣多了。 最后,除了函数公式,别忘了还有闪电填充。闪电填充犹如段誉的六脉神剑,发挥出来威力无穷,但时灵时不灵,可以参考阅读文章《当函数大神遇上了闪电填充》,字符提取有它更精彩

扫描二维码分享到微信

在线咨询
联系电话

18039559935