跳到主要内容
 

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

作者:晓阳 最后修改时间:2020-02-24

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


公式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 人工智能助手:基于以下内容彻底改变数据分析: 智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数...
热门特色: 查找、突出显示或识别重复项  |  删除空白行  |  合并列或单元格而不丢失数据  |  不使用公式进行四舍五入 ...
超级VLookup: 多重标准  |  多重价值  |  跨多页  |  模糊查询...
副词。 下拉列表: 简易下拉列表  |  依赖下拉列表  |  多选下拉列表...
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  将列与 选择相同和不同的单元格 ...
特色功能: 网格焦点  |  设计图  |  大方程式酒吧  |  工作簿和工作表管理器 | 资源库 (自动文本)  |  日期选择器  |  合并工作表  |  加密/解密单元格  |  按列表发送电子邮件  |  超级筛选  |  特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符 ...)  |  50+ 图表 类型 (甘特图 ...)  |  40+ 实用 公式 (根据生日计算年龄 ...)  |  19 插入 工具 (插入二维码, 从路径插入图片 ...)  |  12 转化 工具 (小写金额转大写, 货币兑换 ...)  |  7 合并与拆分 工具 (高级组合行, 拆分 Excel 单元格 ...)  |  ... 和更多

Kutools for Excel 拥有超过 300 个功能, 确保只需点击一下即可获得您所需要的...


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

  • 一秒钟即可在数十个打开的文档之间切换!
  • 每天为您减少数百次鼠标单击,告别鼠标手。
  • 查看和编辑多个文档时,可将您的工作效率提高50%。
  • 为 Office(包括 Excel)带来高效的选项卡,就像 Chrome、Edge 和 Firefox 一样。