excel中提取括号内内容有四种方法:一、mid+search提取首对英文括号内容;二、substitute+find提取最内层括号内容;三、textbefore与textafter函数组合提取;四、vba正则表达式自定义函数提取。

如果您在Excel中需要从包含括号的文本中提取括号内的内容,则可能是由于原始数据中混杂了说明性文字、注释或附加信息。以下是提取括号内字符的多种公式方法:
一、使用MID+SEARCH组合提取第一个小括号中的内容
该方法适用于文本中仅含一对英文半角圆括号(即“()”),且需提取其中全部字符。其原理是定位左括号和右括号的位置,再用MID函数截取中间部分。
1、假设原始数据在A2单元格,输入以下公式:=MID(A2,SEARCH("(",A2)+1,SEARCH(")",A2)-SEARCH("(",A2)-1)
2、按回车确认,公式将返回左括号后第一个字符至右括号前最后一个字符之间的内容。
3、若A2中不含“()”,公式将返回#VALUE!错误,可配合IFERROR进一步容错。
二、使用SUBSTITUTE嵌套配合FIND提取最内层括号内容
该方法适用于含多层嵌套括号(如“外(中(内))”)时,精准提取最内层括号内容。核心思路是通过多次替换,使最内层左括号成为唯一未被替换的“(”,再定位其位置。
1、在B2单元格输入公式:=MID(A2,FIND("@",SUBSTITUTE(A2,"(","@",LEN(A2)-LEN(SUBSTITUTE(A2,"(",""))))+1,FIND("@",SUBSTITUTE(A2,")","@",LEN(A2)-LEN(SUBSTITUTE(A2,")",")")))-FIND("@",SUBSTITUTE(A2,"(","@",LEN(A2)-LEN(SUBSTITUTE(A2,"(",""))))-1)
2、按回车执行,公式将识别最右侧的“(”与紧随其后的第一个“)”之间内容。
3、注意:此公式默认处理英文半角括号;若存在中文全角括号(“(”“)”),需将公式中所有"("和")"替换为"("和")"。
三、使用TEXTBEFORE与TEXTAFTER函数(Microsoft 365 / Excel 2021)
该方法适用于已安装新版Excel的用户,语法简洁、可读性强,直接按分隔符切分字符串。
1、在C2单元格输入公式:=TEXTBEFORE(TEXTAFTER(A2,"("),")")
2、按回车确认,函数先用TEXTAFTER提取第一个“(”之后的所有内容,再用TEXTBEFORE从中截取第一个“)”之前的部分。
3、若A2中无“(”,TEXTAFTER将返回#N/A;若后续无“)”,TEXTBEFORE将返回整段剩余文本,需结合IFNA控制输出。
四、使用正则表达式(通过VBA自定义函数)
该方法适用于需批量处理复杂括号结构(如混合中英文括号、含换行或转义字符)的场景。通过编写VBA函数调用VBScript.RegExp对象实现模式匹配。
1、按Alt+F11打开VBA编辑器,插入新模块,粘贴以下代码:
Function ExtractParentheses(str As String) As String
Dim reg As Object: Set reg = CreateObject("VBScript.RegExp")
reg.Pattern = "\(([^()]*)\)"
reg.Global = False
If reg.Test(str) Then ExtractParentheses = reg.Execute(str)(0).SubMatches(0) Else ExtractParentheses = ""
End Function
2、返回Excel,在D2单元格输入公式:=ExtractParentheses(A2)
3、该函数默认提取首个非嵌套括号对内的内容;如需提取所有括号内容,可将reg.Global设为True并循环遍历Matches集合。










