跳到主要內容

從文本字符串中提取括號之間的文本

現在,如果文本字符串中有部分用括號括起來的文本,則需要提取括號之間的所有文本字符串,如下圖所示。 您如何在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選項卡-在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