跳到主要内容

从文本字符串中提取括号之间的文本

现在,如果文本字符串中有一部分用括号括起来,则需要提取括号之间的所有文本字符串,如下面的屏幕截图所示。 您如何在Excel中快速轻松地解决此任务?


从Excel中的文本字符串中提取括号之间的文本

要提取括号之间的数据,首先,应使用SEARCH函数查找左括号和右括号的位置,然后应用Mid Function获得结果。 通用语法为:

=MID(text,SEARCH("(",text)+1,SEARCH(")",text)-SEARCH("(",text)-1)
  • text:要从中提取数据的文本字符串或单元格值。

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

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

然后,将此公式拖动到要应用此公式的其他单元格上,并且括号之间的所有文本均已提取,请参见屏幕截图:


公式说明:
  • 1. SEARCH(“(”,A2)+1: 此SEARCH函数返回单元格A2中第一个左括号字符的位置,并加1以获取第一个字符在括号内的位置。 该部分在MID函数中被识别为start_num参数。
  • 2. SEARCH(“)”,A2)-SEARCH(“(”,A2)-1:
  • SEARCH(“)”,A2):公式的此部分返回单元格A2中第一个右括号字符的位置。
  • SEARCH(“)”,A2)-SEARCH(“(”,A2)-1:右括号的位置减去左括号的位置,以获取需要提取的括号之间的字符数。 并且此返回值将被识别为MID函数中的num_chars参数。
  • 3. MID(A2,SEARCH("(",A2)+1,SEARCH(")",A2)-SEARCH("(",A2)-1): 到目前为止,MID函数用于提取括号内的文本。

备注:如果一个单元格中有多个括号,要从括号中提取所有子字符串,应应用以下公式:

=TRIM(MID(SUBSTITUTE(SUBSTITUTE("("&$A2,"(",")"),")",REPT(" ",LEN($A2))),2*LEN($A2)*(COLUMNS($A:A)),LEN($A2)))

然后,将此公式拖动到右边的单元格,以获取单元格中括号之间的所有字符串,请参见屏幕截图:

继续将填充手柄向下拖动到要应用此公式的单元格范围,并且所有括号之间的所有文本均已被一次提取,请参见屏幕截图:


使用的相对功能:

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

更多文章:

  • 在Excel中提取包含特定文本的单词
  • 有时,您可能希望从包含特定字符或文本的单元格中提取单词,例如下面的屏幕截图,以提取所有包含“ =”字符的单词。 您如何在Excel中解决此任务?

最佳办公效率工具


Office Tab - 在 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
Hi there,

This was brilliant, thank you! I had tried more than 20 other formulas to remove multiple parentheses and split out the numbers contained, all without success.

Question though, this only appears to work where the cell of origin has <500 characters approx.
Any idea how I could expand this?

I am currently manually splitting the larger cells and then recombining, it only accounts for approx. 10% of my workload, but would be great if there is an automated/formulaic solution! :)

Cheers, 0
This comment was minimized by the moderator on the site
Hello,
I have tested, the second formula in this article can work well if the cell contains more than 500 characters.
=TRIM(MID(SUBSTITUTE(SUBSTITUTE("("&$A2,"(",")"),")",REPT(" ",LEN($A2))),2*LEN($A2)*(COLUMNS($A:A)),LEN($A2)))


Please have a try, if you have any other problem, please upload an error screenshot here.
Thank you!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations