KutoolsforOffice — 一套方案,五大工具。事半功倍。

提取文本在第二个或之后的空格或逗号前或后

作者肖阳修改日期

如果您需要从单元格列表中提取第二个或第 n 个指定字符(如空格或逗号)前后部分的文本,本文将为您介绍几种在 Excel 中实现这一目标的实用公式。

doc-extract-after-second-space-1doc-extract-after-second-space-2

在 Excel 中提取第二个或第 n 个空格或逗号后的文本

在 Excel 中,可通过 TRIM、MID、FIND 和 SUBSTITUTE 函数组合完成该任务,通用语法如下:

=TRIM(MID(text,FIND("#",SUBSTITUTE(text," ","#",Nth))+1,255))
  • text:需要提取文本的字符串或单元格引用。
  • Nth:指您希望根据第几个空格或逗号来提取文本。

请将以下公式输入或复制到您希望输出结果的空白单元格中:

=TRIM(MID(A2,FIND("#",SUBSTITUTE(A2," ","#",2))+1,255))

doc-extract-after-second-space-3


公式说明:

SUBSTITUTE(A2," ","#",2):此 SUBSTITUTE 函数可将单元格 A2 中的第二个空格字符替换为 #。您将得到如下结果:“Insert multiple#空白行”。该返回结果作为 FIND 函数的 within_text 参数。

FIND("#",SUBSTITUTE(A2," ","#",2))+1:FIND 函数会获取 SUBSTITUTE 函数返回字符串中 # 字符的位置,加 1 后即表示从文本第二个空格后的位置开始,结果如下:17. 该结果作为 MID 函数的 start_num 参数。

MID(A2,FIND("#",SUBSTITUTE(A2," ","#",2))+1,255):MID 函数可根据 FIND 函数返回的字符数作为起始位置,从单元格 A2 的文本字符串中提取 255 个字符。

doc extract after second space 04

TRIM():TRIM 函数可移除所有多余空格,仅保留单词之间的单个空格。


注意:

1. 如果您的文本使用逗号或其他分隔符进行分隔,只需将空格替换为相应的分隔符即可。例如:

=TRIM(MID(A2,FIND("#",SUBSTITUTE(A2,",","#",2))+1,255))

2. 如果需要提取第 n 个空格后的文本,请将公式中的 2 替换为所需的数字。例如,若要提取第 3 个空格后的文本,只需使用以下公式:

=TRIM(MID(A4,FIND("#",SUBSTITUTE(A4," ","#",3))+1,255))

doc-extract-after-second-space-5


在 Excel 中提取第二个或第 n 个空格或逗号前的文本

要提取第二个或第 n 个空格或逗号前的文本,可以结合使用 LEFT、SUBSTITUTE 和 FIND 函数。其通用语法如下:

=LEFT(text,FIND("#",SUBSTITUTE(text, " " ,"#",Nth))-1)
  • text:要从中提取文本的文本字符串或单元格引用。
  • Nth:表示您要基于其提取文本的空格或逗号的序号。

请将下列公式复制或输入到空白单元格中:

=LEFT(A2,FIND("#",SUBSTITUTE(A2," ","#",2))-1)

然后,向下拖动填充柄至需要应用公式的单元格,即可如图提取出第二个空格前的全部文本

doc-extract-after-second-space-6


公式说明:

SUBSTITUTE(A2," ","#",2):此 BUBSTITUTE 函数用于将单元格 A2 中第查找和替换个空格字符替换为 # 字符。您将得到如下结果:“Insert multiple#空白行”。此返回结果作为 FIND 函数的 within_text 参数。

FIND("#",SUBSTITUTE(A2," ","#",2))-1:FIND 函数用于获取 SUBSTITUTE 函数返回的字符串中 # 字符的位置,减去 1 即得到第二个空格前的位置。结果如下:15. 该结果用作 LEFT 函数的 num_chars 参数。

LEFT(A2,FIND("#",SUBSTITUTE(A2," ","#",2))-1):最后,LEFT 函数可根据 FIND 函数返回的位置,从单元格 A2 的文本字符串左侧提取相应的字符。


注意:

1. 如果您的文本是用逗号或其他分隔符分隔的,只需将空格替换为您需要的分隔符即可。例如:

=LEFT(A2,FIND("#",SUBSTITUTE(A2,",","#",2))-1)

2. 如果您需要提取第 n 个空格前的文本,只需将公式中的 2 替换为所需的数字。例如,若要提取第 3 个空格前的文本,只需使用以下公式:

=LEFT(A4,FIND("#",SUBSTITUTE(A4," ","#",3))-1)

doc-extract-after-second-space-7


相关函数说明:

  • MID
  • MID 函数可用于从指定的文本字符串中提取并返回所需数量的中间字符。
  • LEFT
  • LEFT 函数可用于从给定字符串的最左侧提取指定数量的字符。
  • FIND
  • FIND 函数可用于在一个字符串中查找指定内容,并返回该内容在该字符串中的起始位置。
  • SUBSTITUTE
  • Microsoft Excel 的 SUBSTITUTE 函数可将文本字符串中的指定文字或字符替换为其他文本或字符。
  • TRIM
  • TRIM 函数能够去除文本字符串中多余的空格,只保留单词之间的单个空格。

更多相关文章:

  • 从单元格中提取多行文本
  • 如果您有一列由换行符(通过在输入文本时按下 Alt + ENTER 键产生)分隔的文本,现在希望像下图所示,将这些内容分别提取到多个单元格中。如何在 Excel 中通过公式实现?
  • 在 Excel 中提取文本字符串中的子串
  • 在日常工作中,您可能经常需要从文本字符串中提取子串,而 Excel 并未直接提供相关函数。不过,通过结合使用 LEFT、RIGHT、MID 和 SEARCH 等函数,您依然可以灵活提取所需的各类子串。

这款最佳办公效率工具

Kutools for Excel —— 助您脱颖而出

🤖KUTOOLS AI 助手:基于数据分析的变革创新智能执行   |  生成代码|  创建自定义公式  |  数据分析及生成图表|  调用 Kutools Functions……
热门功能查找、高亮显示或标记重复项  |  删除空白行  |  合并列或单元格且不丢失数据  |  不使用公式的四舍五入……
超级 VLookup多条件查询  |  多值返回  |  跨多工作表  |  模糊查找……
高级下拉列表轻松下拉列表  |  依赖下拉列表  |  多选下拉列表……
列管理器添加指定数量的列  |  移动列  |  切换隐藏列的显示状态  |比较列与选择相同/不同单元格……
特色功能网格聚焦  |  设计视图  |  增强编辑栏  |  工作簿和表管理器|资源库(自动文本)|  日期提取  |  汇总工作表  |  加密/解密单元格  |  按列表群发邮件  |  超级筛选  |  特殊筛选(筛选粗体单元格/斜体/删除线……) ......
顶级 15 工具组12 文本工具添加文本删除特定字符……)|  50+ 图表 类型甘特图……)|  40+ 实用公式基于生日计算年龄……)|  19 插入工具插入二维码按路径插入图片……)|  12 转换工具小写金额转大写汇率转换……)|  7 合并和拆分工具高级合并行拆分 Excel 单元格……)|……以及更多
在您的首选语言中使用 Kutools——支持英语、西班牙语、德语、法语、中文以及 40+ 种其他语言!

Kutools for Excel 拥有超过 300 项功能,让您的需求一键轻松实现……


Office Tab —— 让 Microsoft Office(包括 Excel)支持标签式阅读与编辑

  • 一秒即可切换数十个已打开的文档!
  • 每天为您减少上百次鼠标点击,轻松告别鼠标手困扰。
  • 查看和编辑多个文档时,工作效率提升 50%。
  • 为 Office(包括 Excel)引入高效标签页,让您同样畅享如 Chrome、Edge 和 Firefox 般的便捷体验。