1、提取单组括号内字符(基础款)
若单元格只有一对英文或中文括号,用MID+FIND组合公式即可,搭配IFERROR还能避免无括号时出现错误值。
英文括号公式:在目标单元格输入
=IFERROR(MID(A1,FIND("(",A1)+1,FIND(")",A1)-FIND("(",A1)-1),"")中文括号公式:把括号替换为中文格式,公式为
=IFERROR(MID(A1,FIND("(",A1)+1,FIND(")",A1)-FIND("(",A1)-1),"")
公式解析:FIND函数定位括号位置,MID函数从左括号后一位开始,截取括号间的字符,IFERROR则让无括号的单元格显示空值。
2、提取多组括号内字符(Excel 365 专属)
当单元格有多个括号如 “苹果 (红)(500g)”,可通过TEXTJOIN+FILTERXML组合公式提取所有括号内容并合并。
输入公式=TEXTJOIN(",",TRUE,FILTERXML("<a><b>"&SUBSTITUTE(SUBSTITUTE(A1,"(","</b><b>"),")","</b><b>")&"</b></a>","//b(position() mod 2 = 0)"))。
公式解析:先将文本按括号分割为 XML 节点,再提取偶数位置的节点(即括号内内容),最后用TEXTJOIN以逗号连接所有结果。
3、提取最后一组括号内字符
若单元格有多组括号但只需最后一组内容,比如 “书籍 (小说)(纸质版)” 要提取 “纸质版”,可用反向定位公式:=IFERROR(MID(A1,FIND("@",SUBSTITUTE(A1,"(", "@",LEN(A1)-LEN(SUBSTITUTE(A1,"(", ""))))+1,FIND("@",SUBSTITUTE(A1,")","@",LEN(A1)-LEN(SUBSTITUTE(A1,")","")))) - FIND("@",SUBSTITUTE(A1,"(", "@",LEN(A1)-LEN(SUBSTITUTE(A1,"(", "")))) -1),"")。
公式解析:通过SUBSTITUTE将最后一个括号替换为特殊符号@,再用FIND定位该符号,最后用MID截取对应内容。
4、VBA 提取(支持嵌套括号)
若存在嵌套括号如 “数据 ((2025) 年度)”,函数公式较难处理,可自定义 VBA 函数。按下Alt+F11打开 VBA 编辑器,插入模块后粘贴以下代码:
Function ExtractBrackets(txt As String)
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = "\((.*?)\)"
regex.Global = True
Dim matches As Object
Set matches = regex.Execute(txt)
Dim result As String
For Each Match In matches
result = result & Match.SubMatches(0) & ","
Next
If result <> "" Then result = Left(result, Len(result) - 1)
ExtractBrackets = result
End Function保存后回到 Excel,在单元格输入=ExtractBrackets(A1),即可提取所有括号(含嵌套)内的内容。





还没有评论,来说两句吧...