欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  Office

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

程序员文章站 2022-01-20 23:13:37
上一篇文章《》,读者看后提出了一个疑问,如果长字符串超过15位用LOOKUP函数提取出错,正确应该如何提取? 善于动脑思考是个好读者,长时间不动脑,脑子会生锈...

上一篇文章《》,读者看后提出了一个疑问,如果长字符串超过15位用LOOKUP函数提取出错,正确应该如何提取?

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

善于动脑思考是个好读者,长时间不动脑,脑子会生锈的。今天,小编就来聊一下字符提取的运用。

数字允许最多的位数为15位,超出部分就以0显示,所以这里不能用LOOKUP函数提取。身份证那么有规律,都是18位,提取是非常简单的。

=RIGHT(A2,18)

在很多时候,并不都是固定位数,就像每个银行的账号,位数是不一样的。

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

书籍也同样,分类也会有长短。

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

其实数字跟字母在某种情况下,可以划分为一类,今天重点讲这个,如何将位数不确定的字符分离?

在Excel中文状态下的标点符号和汉字都属于双字节,也就是用LENB函数统计的时候,一个字算两次。

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

在英文状态下的符号、字母和数字都属于单字节,也就是用LENB函数统计的时候,一个字算一次。

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

而用LEN函数统计出来都是一样的,一个就算一次。

为了更直观,将双字节的全部归为汉字,单字节的全部归为字母。

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

字节数:

=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公式很有趣,有一点数学的思维,然后不断的动脑思考,一步步转换。自从迷上了公式,就不再玩游戏了,这个可比玩游戏有趣多了。

最后,除了函数公式,别忘了还有闪电填充。闪电填充犹如段誉的六脉神剑,发挥出来威力无穷,但时灵时不灵,可以参考阅读文章《当函数大神遇上了闪电填充》,字符提取有它更精彩