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

网友投稿 924 2022-06-09

上一篇文章《根据入职时间计算工龄补贴》,读者看后提出了一个疑问,如果长字符串超过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单元格的公式就变成最终的:

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

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Excel 微图表对数据进行可视化处理实现数据与图表的一体化衔接
下一篇:根据入职日期用Excel 计算工龄补贴 满1年补贴50满2年补贴100
相关文章