跳到主要内容

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

作者:晓阳 最后修改时间:2020-01-10

您可能需要从文本字符串中提取子字符串,这对您来说是一项常见的任务,在Excel中,没有直接执行此操作的功能,但是借助LEFT,RIGHT,MID和SEARCH函数,您可以提取您需要的各种子字符串。


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

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

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

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

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

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

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

=LEFT(A2,3)

然后,将填充手柄向下拖动到要应用此公式的单元格上,并且所有前三个字符均已从原始文本中提取,请参见屏幕截图:


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

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

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

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

=RIGHT(A2,6)

然后,将此公式复制到所需的其他单元格中,并从文本右侧提取了所有6个字符,请参见屏幕截图:


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

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

=MID (text, start_num, num_chars)
  • text:您要提取字符的文本字符串。
  • start_num:要提取的第一个字符的位置。
  • num_chars:您要提取的字符总数。

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

=MID(A2,7,3)

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


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

LEFT,RIGHT和MID函数可以帮助您提取具有特定字符数的统一子字符串,但是有时,您可能需要提取可变长度的子字符串,可以创建一些更复杂的公式来解决此工作。

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

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

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

例如,我要提取连字符前面的所有字符,请将以下公式应用到空白单元格中:

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

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


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

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

如果要在特定字符后提取子字符串,RIGHT,LEN,SEARCH函数可以为您提供帮助,则通用语法为:

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

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

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

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


公式说明:
  • SEARCH(“-”,A2): 该搜索功能用于查找单元格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)

然后,向下拖动填充手柄以将该公式应用于其他单元格,您将获得结果,如以下屏幕截图所示:


公式说明:
  • 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函数用于根据以上两个参数提取子字符串。

使用的相对功能:

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

更多文章:

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

最佳办公效率工具

Kutools for Excel-帮助您从人群中脱颖而出

🤖 Kutools 人工智能助手:基于以下内容彻底改变数据分析: 智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数...
热门特色: 查找、突出显示或识别重复项  |  删除空白行  |  合并列或单元格而不丢失数据  |  不使用公式进行四舍五入 ...
超级VLookup: 多重标准  |  多重价值  |  跨多页  |  模糊查询...
副词。 下拉列表: 简易下拉列表  |  依赖下拉列表  |  多选下拉列表...
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  将列与 选择相同和不同的单元格 ...
特色功能: 网格焦点  |  设计图  |  大方程式酒吧  |  工作簿和工作表管理器 | 资源库 (自动文本)  |  日期选择器  |  合并工作表  |  加密/解密单元格  |  按列表发送电子邮件  |  超级筛选  |  特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符 ...)  |  50+ 图表 类型 (甘特图 ...)  |  40+ 实用 公式 (根据生日计算年龄 ...)  |  19 插入 工具 (插入二维码, 从路径插入图片 ...)  |  12 转化 工具 (小写金额转大写, 货币兑换 ...)  |  7 合并与拆分 工具 (高级组合行, 拆分 Excel 单元格 ...)  |  ... 和更多

Kutools for Excel 拥有超过 300 个功能, 确保只需点击一下即可获得您所需要的...

描述


Office 选项卡 - 在 Microsoft Office(包括 Excel)中启用选项卡式阅读和编辑

  • 一秒钟即可在数十个打开的文档之间切换!
  • 每天为您减少数百次鼠标单击,告别鼠标手。
  • 查看和编辑多个文档时,可将您的工作效率提高50%。
  • 为 Office(包括 Excel)带来高效的选项卡,就像 Chrome、Edge 和 Firefox 一样。
Comments (2)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
=RIGHT(A2,LEN(A2)-SEARCH("-",A2))
эта формула не работает, т.к. в эксель роль разделителя выполнять точка с запятой ";"
This comment was minimized by the moderator on the site
Hello, Вурдалака
This formula works well in our English language, and a semicolon may be required in other languages.
Thank you!
There are no comments posted here yet
Leave your comments
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations