可采用五种方法提取括号内内容:一、mid+search组合提取首个括号内容;二、textbefore与textafter函数简洁截取;三、power query可视化拆分多括号;四、vba正则精准匹配全部括号;五、分列功能手动处理固定格式。

如果您在Excel中需要从包含括号的文本中精准获取括号内的内容,或需将一个单元格中混合信息(如姓名(部门)(职位))按括号结构快速分离为多列,则可采用以下多种方法实现。以下是具体操作步骤:
一、使用MID+SEARCH函数组合提取第一个括号内内容
该方法适用于提取文本中**首个左括号与对应右括号之间**的内容,不依赖括号嵌套层级,仅定位最外层第一对括号。
1、在目标单元格输入公式:=MID(A1,SEARCH("(",A1)+1,SEARCH(")",A1)-SEARCH("(",A1)-1),其中A1为含括号的原始数据单元格。
2、按Enter确认,结果即显示第一个括号内的字符串。
3、若A1中无括号,公式将返回#VALUE!错误,可配合IFERROR进一步容错处理。
二、使用TEXTBEFORE与TEXTAFTER函数(Excel 365/2021)
此方法利用新函数直接按分隔符截取,语法简洁、逻辑清晰,支持双向定位括号边界,无需计算字符位置。
1、提取第一个括号内内容:输入公式=TEXTBEFORE(TEXTAFTER(A1,"("),"")。
2、更稳妥写法(避免空括号干扰):=TEXTBEFORE(TEXTAFTER(A1,"("),")")。
3、向下填充公式,即可批量提取所有首对括号中的内容。
三、使用Power Query按括号拆分列
该方法适合对整列数据进行结构化清洗,尤其当括号出现多次、需提取多个括号内容或保留原始列时效果显著,且操作全程可视化、可重复应用。
1、选中数据列 → 点击「数据」选项卡 → 「从表格/区域」导入至Power Query编辑器(勾选“表包含标题”如适用)。
2、在查询编辑器中右键点击该列 → 选择「按分隔符拆分列」→ 「按每个出现次数」→ 分隔符设为“(” → 点击确定。
3、再对最右侧新生成的列(即含“)内容”部分)右键 → 「按分隔符拆分列」→ 分隔符设为“)” → 选择「向左拆分」→ 点击确定。
4、删除多余辅助列,保留仅含括号内文本的列,点击「关闭并上载」完成。
四、使用正则表达式(通过VBA自定义函数)
该方法可精准匹配任意位置、任意数量的括号内容,支持提取全部括号对,适用于复杂文本(如“测试(A)与(B)、(C)同时存在”),弥补内置函数局限。
1、按Alt+F11打开VBA编辑器 → 插入 → 模块 → 粘贴以下代码:
Function ExtractParentheses(txt As String) As String
Dim reg As Object: Set reg = CreateObject("VBScript.RegExp")
reg.Global = True: reg.Pattern = "\(([^()]*)\)"
If reg.Test(txt) Then ExtractParentheses = reg.Execute(txt)(0).SubMatches(0) Else ExtractParentheses = ""
End Function
2、返回Excel,在单元格中输入公式:=ExtractParentheses(A1)。
3、该函数默认返回第一个匹配括号内容;如需全部,需修改代码返回数组并配合INDEX等调用。
五、使用「分列」功能手动拆分(无公式场景)
适用于一次性处理、不需动态更新、且括号格式统一(如固定为“文本(内容)”结构)的简单场景,操作直观、零门槛。
1、选中待处理列 → 点击「数据」选项卡 → 「分列」→ 选择「分隔符号」→ 下一步。
2、取消所有默认勾选,仅勾选“其他”并输入左括号“(” → 下一步。
3、在第2列列数据格式中选择“不导入此列(跳过)” → 完成。
4、此时第3列即为原括号后内容(含右括号),再次对该列执行分列 → “其他”填入“)” → 跳过第1列,保留第2列 → 完成。










