一、提取单组括号内字符(基础公式)
适用于单元格内只有一对英文或中文括号的情况。
英文括号公式:
=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正则表达式。
操作步骤:
- 按
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
3.返回Excel,输入 =ExtractBrackets(A1) 即可提取所有括号(含嵌套)内的内容。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END














暂无评论内容