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

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

作者Xiaoyang修改日期

在 Excel 中,虽然没有专门用于提取子字符串的直接函数,但您可以灵活运用 LEFT、RIGHT、MID 以及 SEARCH 函数,根据实际需求高效提取各类子字符串。

doc-提取子字符串-1


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

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

  • LEFT function:从文本字符串的左侧提取子字符串。
  • RIGHT function:从文本字符串的右侧提取所需内容。
  • MID function:从文本字符串中提取中间子字符串。

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

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

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

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

=LEFT(A2,3)

然后,将填充柄向下拖动到需要应用该公式的单元格,所有前 3 个字符便已从原文本中提取出来,见下图:

doc-提取子字符串-2


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

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

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

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

=RIGHT(A2,6)

然后,将该公式复制到所需的其他单元格,从文本右侧就成功提取出了 6 个字符,见下图:

doc-提取子字符串-3


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

若需从文本中间提取指定数量的字符,可通过 MID 函数轻松实现。

=MID (text, start_num, num_chars)
  • text:您需要提取字符的文本字符串。
  • start_num:需提取的首字符所在位置。
  • num_chars:您需要提取的字符总数。

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

=MID(A2,7,3)

然后向下拖动填充柄至需要应用此公式的单元格,即可得到如下结果:

doc-提取子字符串-4


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

LEFT、RIGHT 和 MID 函数可用于提取固定长度的子字符串,但当需要提取变长子字符串时,也可以通过自定义复杂公式来实现。

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

若要提取某个特定字符前的全部字符,通用语法如下:

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

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

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

然后将填充柄向下拖动到需要应用公式的单元格,所有连字符前的字符已提取,如下图所示:

doc-提取子字符串-5


公式说明:
  • SEARCH("-",A2)-1 该 SEARCH 函数用于查找单元格 A2 中连字符的位置,并减去 1,从而排除该字符本身。结果将作为 LEFT 函数的 num_chars 参数使用。
  • LEFT(A2, SEARCH("-",A2)-1) 该 LEFT 函数可根据 SEARCH 函数返回的字符数,从单元格 A2 文本左侧提取数字。

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

若需提取某一特定字符后的子字符串,可用 RIGHT、LEN、SEARCH 函数,通用语法如下:

=RIGHT(text,LEN(text)-SEARCH(char, text)
  • text:您需要提取字符的文本字符串。
  • char:用于提取子字符串中特定字符。

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

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

然后将该公式复制到需要使用的单元格,即可得到下图结果:

doc-提取子字符串-6


公式说明:
  • SEARCH(“-“,A2): 此 SEARCH 函数可用于查找单元格 A2 中连字符的位置。
  • LEN(A2)-SEARCH("-",A2)LEN 函数返回文本字符串的总长度,减去 SEARCH 函数返回的数值,即可得到特定字符后面字符的数量。该值用作 RIGHT 函数的 num_chars 参数。
  • RINGT()此 RIGHT 函数可用于从单元格 A2 文本末尾提取指定数量的字符。

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

如果您需要提取位于两个指定字符之间的子字符串,以下函数或许可以帮到您,通用语法如下:

=MID(text, SEARCH(char, text)+1, SEARCH (char, text, SEARCH (char, text)+1) - SEARCH (char, text)-1)
  • text:您希望提取字符的文本字符串。
  • char:要据此提取子字符串的特定字符。

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

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

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

doc-提取子字符串-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-提取子字符串-8

使用到的相关函数:

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

更多相关文章:

  • 从多行单元格中提取最后一行文本
  • 如果需要从以换行符分隔的文本字符串中提取最后一行,虽然没有直接的方法可用,但本教程将为您介绍一个可在 Excel 中实现此功能的公式。

这款最佳办公效率工具

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 般的便捷体验。