Excel公式批量从身份证和手机号码中提取归属地不用一个个查询
1133
2022-07-28
上一篇文章《根据入职时间计算工龄补贴》,读者看后提出了一个疑问,如果长字符串超过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公式很有趣,有一点数学的思维,然后不断的动脑思考,一步步转换。自从迷上了公式,就不再玩游戏了,这个可比玩游戏有趣多了。
最后,除了函数公式,别忘了还有闪电填充。闪电填充犹如段誉的六脉神剑,发挥出来威力无穷,但时灵时不灵,可以参考阅读文章《当函数大神遇上了闪电填充》,字符提取有它更精彩
发表评论
暂时没有评论,来抢沙发吧~