从Excel中的文本字符串提取子字符串
您可能经常需要从文本字符串中提取子字符串。在Excel中,虽然没有直接的函数可以完成这一任务,但借助LEFT、RIGHT、MID和SEARCH函数,您可以根据需要提取各种子字符串。
从文本字符串中提取特定数量字符的子字符串
在Excel中,LEFT、RIGHT和MID函数可以帮助您从文本字符串的左侧、右侧或中间提取指定长度的子字符串。
- LEFT函数:从文本字符串的左侧提取子字符串。
- RIGHT函数:从文本字符串的右侧提取文本。
- MID函数:从文本字符串的中间提取子字符串。
从文本字符串的左侧提取子字符串:
LEFT函数可以帮助您从文本字符串中提取前x个字符,其通用语法为:
- text: 您希望从中提取字符的文本字符串。
- num_chars: 您希望从文本字符串左侧提取的字符数。
请在空白单元格中输入以下公式:
然后,向下拖动填充柄以将此公式应用到其他单元格,所有原始文本中的前3个字符都将被提取出来,如下图所示:
从文本字符串的右侧提取子字符串:
要从文本末尾提取子字符串,请使用RIGHT函数:
- text: 您希望从中提取字符的文本字符串。
- num_chars: 您希望从文本字符串右侧提取的字符数。
例如,要从文本字符串中提取最后6个字符,请在空白单元格中输入以下公式:
然后,将此公式复制到您需要的其他单元格中,所有6个字符都已从文本右侧提取出来,如下图所示:
从文本字符串的中间提取子字符串:
要从文本中间提取具有特定字符长度的子字符串,MID函数可以帮您实现。
- text: 您希望从中提取字符的文本字符串。
- start_num: 您希望提取的第一个字符的位置。
- num_chars: 您希望提取的字符总数。
例如,要从文本字符串的第七个字符开始提取3个字符,请在空白单元格中输入以下公式:
然后,向下拖动填充柄以根据需要将此公式应用到其他单元格,您将得到以下结果:
从文本字符串中特定字符之前或之后提取子字符串
LEFT、RIGHT和MID函数可以帮助您提取具有特定字符数的统一子字符串,但有时您可能需要提取可变长度的子字符串,可以通过创建更复杂的公式来解决这个问题。
提取特定字符之前的子字符串
要提取特定字符之前的所有字符,其通用语法为:
- text: 您希望从中提取字符的文本字符串。
- char: 提取子字符串所基于的特定字符。
例如,我想提取连字符之前的所有字符,请在空白单元格中应用以下公式:
然后向下拖动填充柄以将此公式应用到其他单元格,连字符之前的所有字符都已被提取,如下图所示:
公式的解释:
- SEARCH("-",A2)-1: 此SEARCH函数用于查找单元格A2中连字符的位置,并减去1以排除该字符本身。它被识别为LEFT函数的num_chars参数。
- LEFT(A2, SEARCH("-",A2)-1): 此LEFT函数从单元格A2中的文本左侧提取由SEARCH函数返回的字符数。
提取特定字符之后的子字符串
如果您想提取特定字符之后的子字符串,RIGHT、LEN和SEARCH函数可以帮您,其通用语法为:
- text: 您希望从中提取字符的文本字符串。
- char: 提取子字符串所基于的特定字符。
要提取连字符之后的字符,请应用以下公式:
然后,将此公式复制到您需要使用的单元格中,您将得到如下图所示的结果:
公式的解释:
- SEARCH("-",A2): 此SEARCH函数用于查找单元格A2中连字符的位置。
- LEN(A2)-SEARCH("-",A2): LEN函数返回的文本字符串总长度减去SEARCH函数返回的数字,以获取特定字符之后的字符数。这被识别为RIGHT函数的num_chars参数。
- RINGT(): 此RIGHT函数用于从单元格A2中文本字符串的末尾提取字符数。
提取两个特定字符之间的子字符串
如果您需要提取两个给定字符之间的子字符串,也许下面的函数可以帮您,其通用语法为:
- text: 您希望从中提取字符的文本字符串。
- char: 提取子字符串所基于的特定字符。
例如,要提取两个连字符之间的文本,请使用此公式:
然后,向下拖动填充柄以将此公式应用到其他单元格,您将得到如下图所示的结果:
公式的解释:
- 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函数根据上述两个参数提取子字符串。
相关函数:
- LEFT:
- LEFT函数从文本字符串的左侧提取字符串。
- RIGHT:
- RIGHT函数返回文本字符串右侧的文本。
- MID:
- MID函数从文本字符串的中间返回特定字符。
- SEARCH:
- SEARCH函数可以帮助您从给定文本中查找特定字符或子字符串的位置。
更多文章:
- 在Excel中获取或提取文本字符串中的第一个单词
- 要从一系列由空格分隔的文本字符串中提取所有第一个单词,Excel中的LEFT和FIND函数可以帮您实现。
- 在Excel中获取或提取文本字符串中的最后一个单词
- 要从由空格字符分隔的文本字符串中提取最后一个单词,通常情况下,您可以基于Excel中的TRIM、SUBSTITUTE、RIGHT和REPT函数创建一个公式。
- 从多行单元格中提取最后一行文本
- 要从由换行符分隔的文本字符串中提取最后一行文本,通常情况下,没有直接的方法可以解决这个问题。本文将介绍一种在Excel中处理此任务的公式。
最佳的办公生产力工具
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 一样。