提取特定字符最后一次出现后的文本
如果你有一列包含多个分隔符的复杂文本字符串(以下面的截图为例,其中包含连字符、逗号和单元格数据中的空格),现在你想找到最后一个连字符出现的位置,并提取其后的子字符串。本文将介绍一些用于处理此任务的公式。
公式 1:提取特定分隔符最后一次出现后的子字符串
在 Excel 中,RIGHT 函数结合 LEN、SEARCH 和 SUBSTITUTE 函数可以帮助你创建一个公式来解决这个问题。
1. 要提取最后一个连字符后的子字符串,请在空白单元格中输入或复制以下公式:
2. 然后,向下拖动填充柄以应用该公式到其他单元格,你将得到如下截图所示的结果:
公式解释:
1. LEN(A2)-LEN(SUBSTITUTE(A2,"-","")):这部分用于获取单元格 A2 中连字符的数量。
- LEN(A2):此 LEN 函数返回单元格 A2 中字符的总数。它将返回:44。
- SUBSTITUTE(A2,"-",""):此 SUBSTITUTE 函数用于将所有连字符替换为空白。你将得到这样的结果:“InsertDeleterows, sheets, images, formulas”。
- LEN(SUBSTITUTE(A2,"-",""):获取单元格 A2 中没有连字符的文本字符串的总长度。
- LEN(A2)-LEN(SUBSTITUTE(A2,"-","")):从总字符串长度中减去没有连字符的文本字符串长度,以获取连字符的数量,这将得到 2。
2. SUBSTITUTE(A2,"-","#",LEN(A2)-LEN(SUBSTITUTE(A2,"-",""))):此 SUBSTITUTE 函数用于将第一部分公式返回的最后一个连字符替换为 # 字符。你将得到这个结果:“Insert-Delete#rows, sheets, images, formulas”。
3. SEARCH("#",SUBSTITUTE(A2,"-","#",LEN(A2)-LEN(SUBSTITUTE(A2,"-",""))))= SEARCH("#", "Insert-Delete#rows, sheets, images, formulas"):此 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,"-","")))))= RIGHT(A2, 30):最后,RIGHT 函数用于从单元格 A2 的文本字符串右侧提取由步骤 4 公式返回的 30 个字符。
注意事项:
1. 如果你需要提取其他分隔符最后一次出现后的文本,只需根据需要将连字符替换为另一个分隔符即可。
2. 如果文本字符串中没有特定的分隔符,上述公式将返回错误值,见截图:
要修复此错误,你可以将上述公式嵌套到 IFERROR 函数中,请使用以下公式:
公式 2:提取特定分隔符最后一次出现后的子字符串
这是另一个简单的公式,由 TRIM、RIGHT、SUBSTITUTE、REPT 和 LEN 函数创建,也可以帮助你在 Excel 中解决此任务。
1. 请将以下公式复制或输入到你想要获取结果的空白单元格中:
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 中使用公式解决这个问题?
- 从文本字符串中提取第 N 个单词
- 如果你有一列文本字符串或句子,现在想从列表中提取特定的第 N 个单词,如下截图所示。本文将介绍一些在 Excel 中解决此问题的方法。
- 从文本字符串中提取括号内的文本
- 如果文本字符串中有部分文本被括号包围,现在你需要提取括号内的所有文本字符串,如下截图所示。如何在 Excel 中快速轻松地解决这个问题?
- 从文本字符串中提取子字符串
- 在 Excel 中,你可能经常需要从文本字符串中提取子字符串,虽然 Excel 没有直接的函数来完成这项任务,但借助 LEFT、RIGHT、MID 和 SEARCH 函数,你可以根据需要提取各种子字符串。
最佳的办公生产力工具
Kutools for Excel - 助您脱颖而出
🤖 | Kutools AI 助手:基于以下功能彻底改变数据分析方式:智能执行 | 生成代码 | 创建自定义公式 | 分析数据并生成图表 | 调用Kutools函数… |
热门功能: 查找、高亮或标记重复项 | 删除空行 | 合并列或单元格而不丢失数据 | 四舍五入无需公式 ... | |
超级VLookup: 多条件 | 多值 | 跨多个工作表 | 模糊查找... | |
高级下拉列表: 简易下拉列表 | 级联下拉列表 | 多选下拉列表... | |
列管理器: 添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较列以 选择相同和不同的单元格 ... | |
精选功能:网格聚焦 | 设计视图 | 增强编辑栏 | 工作簿与工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按列表发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/斜体/删除线...) ... | |
排名前15的工具集: 12个 文本 工具(添加文本,删除特定字符 ...) | 50多种 图表 类型(甘特图 ...) | 40多种实用 公式(基于生日计算年龄 ...) | 19个 插入 工具(插入二维码,从路径插入图片 ...) | 12个 转换 工具(小写金额转大写,汇率转换 ...) | 7个 合并与拆分 工具(高级合并行,分割Excel单元格 ...) | ... 还有更多 |
Kutools for Excel拥有超过300种功能,确保您需要的功能只需一键即可实现...
Office Tab - 在Microsoft Office(包括Excel)中启用标签式阅读和编辑
- 一秒内切换数十个打开的文档!
- 每天为您减少数百次鼠标点击,告别鼠标手。
- 在查看和编辑多个文档时,您的工作效率将提高50%。
- 为Office(包括Excel)带来高效的标签页,就像Chrome、Edge和Firefox一样。