跳至主要内容

从Excel中的文本字符串提取子字符串

Author: Xiaoyang Last Modified: 2025-07-31

您可能经常需要从文本字符串中提取子字符串。在Excel中,虽然没有直接的函数可以完成这一任务,但借助LEFT、RIGHT、MID和SEARCH函数,您可以根据需要提取各种子字符串。

doc-extract-substring-1


从文本字符串中提取特定数量字符的子字符串

在Excel中,LEFT、RIGHT和MID函数可以帮助您从文本字符串的左侧、右侧或中间提取指定长度的子字符串。

  • LEFT函数:从文本字符串的左侧提取子字符串。
  • RIGHT函数:从文本字符串的右侧提取文本。
  • MID函数:从文本字符串的中间提取子字符串。

从文本字符串的左侧提取子字符串:

LEFT函数可以帮助您从文本字符串中提取前x个字符,其通用语法为:

=LEFT(文本, [字符数])
  • text: 您希望从中提取字符的文本字符串。
  • num_chars: 您希望从文本字符串左侧提取的字符数。

请在空白单元格中输入以下公式:

=LEFT(A2,3)

然后,向下拖动填充柄以将此公式应用到其他单元格,所有原始文本中的前3个字符都将被提取出来,如下图所示:

doc-extract-substring-2


从文本字符串的右侧提取子字符串:

要从文本末尾提取子字符串,请使用RIGHT函数:

=RIGHT(文本, [字符数])
  • text: 您希望从中提取字符的文本字符串。
  • num_chars: 您希望从文本字符串右侧提取的字符数。

例如,要从文本字符串中提取最后6个字符,请在空白单元格中输入以下公式:

=RIGHT(A2,6)

然后,将此公式复制到您需要的其他单元格中,所有6个字符都已从文本右侧提取出来,如下图所示:

doc-extract-substring-3


从文本字符串的中间提取子字符串:

要从文本中间提取具有特定字符长度的子字符串,MID函数可以帮您实现。

=MID(文本, 起始位置, 字符数)
  • text: 您希望从中提取字符的文本字符串。
  • start_num: 您希望提取的第一个字符的位置。
  • num_chars: 您希望提取的字符总数。

例如,要从文本字符串的第七个字符开始提取3个字符,请在空白单元格中输入以下公式:

=MID(A2,7,3)

然后,向下拖动填充柄以根据需要将此公式应用到其他单元格,您将得到以下结果:

doc-extract-substring-4


从文本字符串中特定字符之前或之后提取子字符串

LEFT、RIGHT和MID函数可以帮助您提取具有特定字符数的统一子字符串,但有时您可能需要提取可变长度的子字符串,可以通过创建更复杂的公式来解决这个问题。

提取特定字符之前的子字符串

要提取特定字符之前的所有字符,其通用语法为:

=LEFT(文本, SEARCH(字符, 文本)-1)
  • text: 您希望从中提取字符的文本字符串。
  • char: 提取子字符串所基于的特定字符。

例如,我想提取连字符之前的所有字符,请在空白单元格中应用以下公式:

=LEFT(A2, SEARCH("-",A2)-1)

然后向下拖动填充柄以将此公式应用到其他单元格,连字符之前的所有字符都已被提取,如下图所示:

doc-extract-substring-5


公式的解释:
  • SEARCH("-",A2)-1: 此SEARCH函数用于查找单元格A2中连字符的位置,并减去1以排除该字符本身。它被识别为LEFT函数的num_chars参数。
  • LEFT(A2, SEARCH("-",A2)-1): 此LEFT函数从单元格A2中的文本左侧提取由SEARCH函数返回的字符数。

提取特定字符之后的子字符串

如果您想提取特定字符之后的子字符串,RIGHT、LEN和SEARCH函数可以帮您,其通用语法为:

=RIGHT(文本,LEN(文本)-SEARCH(字符, 文本))
  • text: 您希望从中提取字符的文本字符串。
  • char: 提取子字符串所基于的特定字符。

要提取连字符之后的字符,请应用以下公式:

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

然后,将此公式复制到您需要使用的单元格中,您将得到如下图所示的结果:

doc-extract-substring-6


公式的解释:
  • SEARCH("-",A2): 此SEARCH函数用于查找单元格A2中连字符的位置。
  • LEN(A2)-SEARCH("-",A2): LEN函数返回的文本字符串总长度减去SEARCH函数返回的数字,以获取特定字符之后的字符数。这被识别为RIGHT函数的num_chars参数。
  • RINGT(): 此RIGHT函数用于从单元格A2中文本字符串的末尾提取字符数。

提取两个特定字符之间的子字符串

如果您需要提取两个给定字符之间的子字符串,也许下面的函数可以帮您,其通用语法为:

=MID(文本, SEARCH(字符, 文本)+1, SEARCH (字符, 文本, SEARCH (字符, 文本)+1) - SEARCH (字符, 文本)-1)
  • text: 您希望从中提取字符的文本字符串。
  • char: 提取子字符串所基于的特定字符。

例如,要提取两个连字符之间的文本,请使用此公式:

=MID(A2, SEARCH("-",A2) + 1, SEARCH("-",A2,SEARCH("-",A2)+1) - SEARCH("-",A2) - 1)

然后,向下拖动填充柄以将此公式应用到其他单元格,您将得到如下图所示的结果:

doc-extract-substring-7


公式的解释:
  • SEARCH("-",A2) + 1: SEARCH函数用于返回连字符的位置,加1表示从下一个字符开始提取子字符串。它被识别为MID函数的start_num参数。
  • SEARCH("-",A2,SEARCH("-",A2)+1): 此部分公式用于获取第二个连字符的位置。
  • SEARCH("-",A2,SEARCH("-",A2)+1) - SEARCH("-",A2) - 1): 使用第二个连字符的位置减去第一个连字符的位置,以获取这两个连字符之间的字符数,然后从结果中减去1以排除分隔符字符。这被识别为MID函数的num_chars参数。
  • MID(): 此MID函数根据上述两个参数提取子字符串。
  • doc-extract-substring-8

相关函数:

  • LEFT:
  • LEFT函数从文本字符串的左侧提取字符串。
  • RIGHT:
  • RIGHT函数返回文本字符串右侧的文本。
  • MID:
  • MID函数从文本字符串的中间返回特定字符。
  • SEARCH:
  • SEARCH函数可以帮助您从给定文本中查找特定字符或子字符串的位置。

更多文章:

  • 从多行单元格中提取最后一行文本
  • 要从由换行符分隔的文本字符串中提取最后一行文本,通常情况下,没有直接的方法可以解决这个问题。本文将介绍一种在Excel中处理此任务的公式。

最佳的办公生产力工具

Kutools for Excel - 助您脱颖而出

🤖 Kutools AI 助手:基于智能执行革新数据分析:智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数
热门功能查找、高亮或标记重复项  |  删除空行  |  合并列或单元格而不丢失数据  |  无需公式四舍五入 ...
超级 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 一样。