Excel提取括号内字符的4种方法(单组/多组/最后一组/嵌套)

一、提取单组括号内字符(基础公式)

适用于单元格内只有一对英文或中文括号的情况。

英文括号公式

=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处理无括号时显示空白。

二、提取多组括号内字符(Excel 365专属)

适用于单元格内有多个括号,如“苹果 (红)(500g)”,需提取所有括号内容并合并。

=TEXTJOIN(",",TRUE,FILTERXML("<a><b>"&SUBSTITUTE(SUBSTITUTE(A1,"(","</b><b>"),")","</b><b>")&"</b></a>","//b[position() mod 2 = 0]"))

三、提取最后一组括号内字符(反向定位)

适用于有多组括号但只需最后一组内容,如“书籍 (小说)(纸质版)”提取“纸质版”。

=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定位并截取。

四、VBA提取(支持嵌套括号)

适用于存在嵌套括号的场景,如“数据 ((2025) 年度)”,公式难以处理时借助VBA正则表达式。

操作步骤

  1. 按 Alt+F11 打开VBA编辑器
  2. 插入模块,粘贴以下代码:
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

3.返回Excel,输入 =ExtractBrackets(A1) 即可提取所有括号(含嵌套)内的内容。

© 版权声明
THE END
喜欢就支持一下吧
分享
评论 抢沙发

请登录后发表评论

    暂无评论内容