大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说Excel经典问题:提取字符串,一个案例涉及3种方法和10个函数「终于解决」,希望您对编程的造诣更进一步.
堪称进阶Excel的集大成旗舰系列课《48天,Excel技能脱胎换骨》,试学之后才知道有多厉害……,点击下面卡片了解详情:
有这样一个Excel经典问题,如下图开户行和银行账户写在同一个单元格中,需要将银行账号分离出来。
解决这个问题并不难,我相信大多数同学都能想到不止一种方法,比如:
①快速填充法
②分列法
③Right函数法
这个问题虽然简单,但是它引出了Excel中一大类问题:如何在Excel中分离任何位置的字符串?比如,就上图所示的问题,上面给出的三种方法真的都可以么,我们来分析分析:
▌快速填充
这个方法可以很好的解决数据不规整的的提取问题,但是这个方法只能使用一次,如果数据变化,需要重新进行填充。
▌分列
看以上数据特点:
①无固定长度,因此不能以【固定字符】进行拆分;
②并不是所有文字与数字之间都存在【空格】,因此无法以【分隔符号】进行拆分;
所以分列法并不可行
▌Right函数
=SUBSTITUTE((RIGHT(B3,LEN(B3)*2-LENB(B3)))," ","")
代码100分
所以,你看,对于Excel提取账号这个问题,看似简单,但是由于数据情况的不同,并不是所有的方法都适用,这其实是一个套路很深的Excel经典问题,通过这个问题,可以扩展出来很多知识点。
1、账号提取的三个思路
三个思路:快速填充、分列、函数法
分列和快速填充我们在过去的文章中讲过很多,比较容易理解,这里重点讲解函数法:
代码100分=SUBSTITUTE((RIGHT(B3,LEN(B3)*2-LENB(B3)))," ","")
2、RIGHT函数提取字符
首先对主函数RIGHT的分析,如下图所示:
RIGHT函数需要确定第二个参数,即从字符串右端需要返回的字符的个数,这个应该怎么确定呢?
1.对于中文来说,LENB按 2个字节计数,而LEN按 1 个字节计数;
2.对于数字、空格来说,不管是LEN还是LENB都是按 1 个字节计数;
3.数字(含空格)的个数
=(中文个数+数字个数)*2-(中文个数*2+数字个数)=LEN(B3)*2-LENB(B3)
3、MID函数提取字符
MID函数是用来截取处于中间位置的字符的,他有一个兄弟函数MIDB,它也属于MID函数大类,这两者有什么区别呢?MID,不分英文、中文的。一个英文字母和一个汉字都是一个数。而MIDB,就有区分,一个英文字母为一个字符,一个汉字为两个字符。
正是利用MIDB函数对中英文字符的判定的特性,可以用它来提取复杂的字符串。
=TRIM(MIDB(B3,SEARCHB("?",B3),LENB(B3)))
4、LOOKUP函数提取字符
关于LOOKUP函数的详细用法,我写过一个教科书级的图文教程,通过6张图片就能完全掌握LOOKUP最基础、最地道、最核心的用法,可以看这篇教程来学习。
Excel中的万能查找函数LOOKUP,全在这六张卡片中!
而使用LOOKUP函数提取本案例中的字符,写出的公式是这样的:
代码100分=LOOKUP("A",TRIM(RIGHT(B3,ROW($1:$30))))
当然,使用LOOKUP还可以写出其他的公式形式,也能完成本案例的字符提取:
=LOOKUP("A",TRIM(RIGHT(B3,ROW($1:$30))))
你看,通过一个小小的提取字符案例,我们学习了Excel的快速填充、分列和11个Excel常用函数,他们分别是RIGHT、LEN、LENB、MID、MIDB、SUBSTITUTE、LOOKUP、TRIM、ROW,SEARCH、FIND,可以说,掌握这些常用的文本提取函数,任何形式的字符提取你都手到擒来。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/11379.html