字符串算法(到底谁是你的菜)

字符串提取,是表亲们经常遇到的问题,今天就和大家一起学习字符串提取的方法。

如下图所示,要从A列的路径中提取出文件名称。

字符串算法(到底谁是你的菜)(1)

提取的结果如下图所示:

字符串算法(到底谁是你的菜)(2)

观察这些数据,咱们可以发现:

A列字符串中都是以“\”字符进行分隔的,实际上咱们就是提取最后一个反斜杠“\”后的内容。

有多种方法可以处理这个问题:

字符串算法(到底谁是你的菜)(3)

B2单元格输入以下公式:

=IFERROR(RIGHT(A2,LEN(A2)-FIND("*",SUBSTITUTE(A2,"\","*",LEN(A2)-LEN(SUBSTITUTE(A2,"\",""))))),"")

  1. LEN(A2)-LEN(SUBSTITUTE(A2,"\","")这部分是计算字符串中一共有几个“\”。
  2. 首先用SUBSTITUTE 函数以一个新字符“*”,替换掉最后一个“\”。
  3. 然后再利用FIND函数找到“*”在文本串中的位置。
  4. 接下来用LEN(A2)计算出字符串的总长度,再减去星号“*”在文本串中的位置,余下的就是咱们需要提取的字符个数。
  5. 最后用RIGHT函数从A2单元格的右侧开始,提取(字符长度-星号位置)的字符,就是咱们需要的结果了。

字符串算法(到底谁是你的菜)(4)

B2单元格输入以下公式:

=TRIM(RIGHT(SUBSTITUTE(A2,"\",REPT(" ",99)),99))

  1. REPT(" ",99)的作用是生成99个空格。
  2. 再用SUBSTITUTE函数,将间隔符号“\”全部替换为99个空格。
  3. 接下来使用RIGHT函数,从替换后的字符串右侧开始,提取99个字符,这样就得到最后一个“\”之后的字符串和不确定数量的空格。
  4. 最后使用TRIM函数,将多余的空格替换掉。

字符串算法(到底谁是你的菜)(5)

复制A列数据,粘贴到B列。

选中B列,按Ctrl H调出替换对话框。

在查找内容编辑框中输入: *\

字符串算法(到底谁是你的菜)(6)

星号* 是通配符,表示任意多个字符。*\ 就是表示字符“\”和他之前的所有内容。

只要点击【全部替换】,就可以快速提取出需要的结果了。

三种方法,各有千秋,公式法的特点是数据源发生变化后,结果能自动更新,但是对于初学者来说,一层层的嵌套,会有点眼晕。

第三种方法的特点是便捷快速,缺点是数据源发生变化后,结果不能自动更新。

说说看,你更喜欢哪种呢?

图文制作:耿勇

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页