Note: The other languages of the website are Google-translated. Back to English

在特定字符的最后一个实例之后提取文本

如果您有包含多个定界符的复杂文本字符串列表(以下面的屏幕快照为例,其中包含连字符,逗号,单元格数据中的空格),现在,您要查找最后一个连字符的位置,然后提取其后的子字符串。 本文中,我将介绍一些用于处理此任务的公式。


公式1:在特定定界符的最后一个实例之后提取子字符串

在Excel中,结合了LEN,SEARCH,SUBSTITUTE函数的RIGHT函数可以帮助您创建解决该问题的公式。

1。 要在最后一次出现连字符后提取子字符串,请输入以下公式或将其复制到空白单元格中:

=RIGHT(A2,LEN(A2)-SEARCH("#",SUBSTITUTE(A2,"-","#",LEN(A2)-LEN(SUBSTITUTE(A2,"-","")))))

2。 然后,将填充手柄向下拖动到要应用此公式的单元格上,您将获得结果,如下图所示:


公式说明:

1. LEN(A2)-LEN(SUBSTITUTE(A2,“-”,“”)):此部分用于获取单元格A2中的连字符数。

  • LEN(A2):此LEN函数返回单元格A2中的字符总数。 它将返回:44。
  • SUBSTITUTE(A2,“-”,“”):此SUBSTITUTE函数用于替换所有连字符。 您将得到如下结果:InsertDeleterows,工作表,图像,公式“。
  • LEN(SUBSTITUTE(A2,“-”,“”):获取单元格A2中不含连字符的文本字符串的总长度。
  • LEN(A2)-LEN(SUBSTITUTE(A2,“-”,“”)):从总字符串长度中减去不带连字符的文本字符串的长度,得到连字符的数目,这将得到2。

2. SUBSTITUTE(A2,“-”,“#”,LEN(A2)-LEN(SUBSTITUTE(A2,“-”,“”))):此SUBSTITUTE函数用于将第一个部分公式返回的连字符的最后一次出现替换为#字符。 您将得到以下结果:插入-删除#行,图纸,图像,公式“。

3. SEARCH(“#”,SUBSTITUTE(A2,“-”,“#”,LEN(A2)-LEN(SUBSTITUTE(A2,“-”,“”)))))= SEARCH(“#”,“ Insert-Delete#行,工作表,图像,公式”):此SEARCH函数将返回SUBSTUTTE函数返回的文本字符串中#字符的位置。 它将得到数字14。

4. LEN(A2)-SEARCH("#",SUBSTITUTE(A2,"-","#",LEN(A2)-LEN(SUBSTITUTE(A2,"-","")))):公式的此部分将获取最后一个连字符后有多少个字符。 这将得到数字30。

5. RIGHT(A2,LEN(A2)-SEARCH("#",SUBSTITUTE(A2,"-","#",LEN(A2)-LEN(SUBSTITUTE(A2,"-","")))))= 右(A2,30):最后,使用RIGHT函数从单元格A30中文本字符串的右侧提取4个字符,这些字符由步骤2中的公式返回。


笔记:

1.如果您需要在最后一次出现其他定界符之后提取文本,则只需要根据需要使用另一个定界符来更改连字符。

2.如果文本字符串中没有特定的定界符,则上面的公式将获得错误值,请参见屏幕截图:

要解决此错误,您可以将上面的公式包含在IFERROR函数中,请应用以下公式:

=IFERROR(RIGHT(A2,LEN(A2)-SEARCH("#",SUBSTITUTE(A2,"-","#",LEN(A2)-LEN(SUBSTITUTE(A2,"-",""))))), A2)


公式2:在特定定界符的最后一个实例之后提取子字符串

这是由TRIM,RIGHT,SUBSTITUTE,REPT和LEN函数创建的另一个简单公式,也可以帮助您在Excel中解决此任务。

1。 请将以下公式复制或输入到要获取结果的空白单元格中:

=TRIM(RIGHT(SUBSTITUTE(A2,"-",REPT(" ",LEN(A2))),LEN(A2)))

2。 然后,将填充手柄向下拖动到要应用此公式的单元格上,并提取了最后一个连字符之后的所有子字符串,如下图所示:


公式说明:

1. LEN(A2):此LEN函数返回单元格A2中的字符总数。 这将在RIGHT函数中识别为num_chars参数。 它将返回:44。

2. SUBSTITUTE(A2,“-”,REPT(“”,LEN(A2))):

  • REPT(“”,LEN(A2):此REPT函数用于根据单元格A2的长度获取多个空格字符串。
  • SUBSTITUTE(A2,“-”,REPT(“”,LEN(A2))):此SUBSTITUTE函数将用REPT函数返回的空格字符串替换单元格A2中的连字符。

该部分公式将被识别为RIGHT函数中的text参数。

3. RIGHT(SUBSTITUTE(A2,“-”,REPT(“”,LEN(A2))),LEN(A2)):此RIGHT函数将从SUBSTITUTE函数返回的文本字符串的右侧获取文本。

4. TRIM():此TRIM函数用于删除所有多余的空格,并且在单词之间仅保留一个空格。


使用的相对功能:

  • RIGHT:
  • RIGHT函数从文本字符串的右侧提取特定数量的字符。
  • SEARCH:
  • SEARCH函数可以帮助您从给定的文本中查找特定字符或子字符串的位置。
  • LEN:
  • LEN函数返回文本字符串中的字符数。
  • SUBSTITUTE:
  • Microsoft Excel SUBSTITUTE函数用另一个文本或字符替换文本字符串中的文本或字符。
  • TRIM:
  • TRIM函数从文本字符串中删除所有多余的空格,并且仅在单词之间保留单个空格。
  • REPT:
  • REPT功能用于将字符重复指定的次数。

更多文章:

  • 从一个单元格中提取多行
  • 现在,如果您有由换行符分隔的文本字符串列表(在输入文本时按Alt + Enter键会发生这种情况),现在,您要将这些文本行提取到多个单元格中,如下面的屏幕截图所示。 您如何用Excel中的公式解决它?
  • 从文本字符串中提取括号之间的文本
  • 现在,如果文本字符串中有一部分用括号括起来,则需要提取括号之间的所有文本字符串,如下面的屏幕截图所示。 您如何在Excel中快速轻松地解决此任务?
  • 在Excel中从文本字符串提取子字符串
  • 您可能需要从文本字符串中提取子字符串,这对您来说是一项常见的任务,在Excel中,没有直接执行此操作的功能,但是借助LEFT,RIGHT,MID和SEARCH函数,您可以提取您需要的各种子字符串。

最佳办公效率工具

Kutools for Excel-帮助您从人群中脱颖而出

您想快速,完美地完成日常工作吗? Kutools for Excel具有300项强大的高级功能(合并工作簿,按颜色求和,拆分单元格内容,转换日期等),并为您节省80%的时间。

  • 专为1500个工作方案而设计,可帮助您解决80%的Excel问题。
  • 每天减少成千上万的键盘和鼠标点击,减轻您疲倦的眼睛和手部的疲劳。
  • 在3分钟内成为一名Excel专家。 不再需要记住任何痛苦的公式和VBA代码。
  • 30天无限制免费试用。 60天退款保证。 免费升级和支持2年。
Excel功能区(已安装Kutools for Excel)

Office选项卡-在Microsoft Office(包括Excel)中启用选项卡式阅读和编辑

  • 一秒钟即可在数十个打开的文档之间切换!
  • 每天为您减少数百次鼠标单击,告别鼠标手。
  • 查看和编辑多个文档时,可将您的工作效率提高50%。
  • 像Chrome,Firefox和新的Internet Explorer一样,为Office(包括Excel)带来高效选项卡。
Excel的屏幕截图(已安装Office选项卡)
按评论排序
注释 (0)
还没有评分。 成为第一位评论!
这里还没有评论
留下你的意见
以访客身份发帖
×
评价此帖子:
0  产品特性
建议地点