字符串算法(到底谁是你的菜)
字符串提取,是表亲们经常遇到的问题,今天就和大家一起学习字符串提取的方法。
如下图所示,要从A列的路径中提取出文件名称。
提取的结果如下图所示:
观察这些数据,咱们可以发现:
A列字符串中都是以“\”字符进行分隔的,实际上咱们就是提取最后一个反斜杠“\”后的内容。
有多种方法可以处理这个问题:
B2单元格输入以下公式:
=IFERROR(RIGHT(A2,LEN(A2)-FIND("*",SUBSTITUTE(A2,"\","*",LEN(A2)-LEN(SUBSTITUTE(A2,"\",""))))),"")
- LEN(A2)-LEN(SUBSTITUTE(A2,"\","")这部分是计算字符串中一共有几个“\”。
- 首先用SUBSTITUTE 函数以一个新字符“*”,替换掉最后一个“\”。
- 然后再利用FIND函数找到“*”在文本串中的位置。
- 接下来用LEN(A2)计算出字符串的总长度,再减去星号“*”在文本串中的位置,余下的就是咱们需要提取的字符个数。
- 最后用RIGHT函数从A2单元格的右侧开始,提取(字符长度-星号位置)的字符,就是咱们需要的结果了。
B2单元格输入以下公式:
=TRIM(RIGHT(SUBSTITUTE(A2,"\",REPT(" ",99)),99))
- REPT(" ",99)的作用是生成99个空格。
- 再用SUBSTITUTE函数,将间隔符号“\”全部替换为99个空格。
- 接下来使用RIGHT函数,从替换后的字符串右侧开始,提取99个字符,这样就得到最后一个“\”之后的字符串和不确定数量的空格。
- 最后使用TRIM函数,将多余的空格替换掉。
复制A列数据,粘贴到B列。
选中B列,按Ctrl H调出替换对话框。
在查找内容编辑框中输入: *\
星号* 是通配符,表示任意多个字符。*\ 就是表示字符“\”和他之前的所有内容。
只要点击【全部替换】,就可以快速提取出需要的结果了。
三种方法,各有千秋,公式法的特点是数据源发生变化后,结果能自动更新,但是对于初学者来说,一层层的嵌套,会有点眼晕。
第三种方法的特点是便捷快速,缺点是数据源发生变化后,结果不能自动更新。
说说看,你更喜欢哪种呢?
图文制作:耿勇
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com