Excel快速提取括号内文字:字符截取函数技巧
Excel提取括号内文字有多种方法:MID+SEARCH适合单对中文括号;TEXTBEFORE与TEXTAFTER用于Excel365/2024提取首对英文括号;PowerQuery可批量拆分多对括号内容;FILTERXML支持Windows版提取全部,需注意符号兼容性。

使用MID+SEARCH提取第一个中文括号内的文字
这个方法最适合文本中只有一对全角中文括号(“(”和“)”)的情况,或者只需要提取最前面那一对括号的内容。公式依赖括号的精确位置,一旦括号缺失就会返回错误。操作很简单:在目标单元格输入 =MID(A1,SEARCH("(",A1)+1,SEARCH(")",A1)-SEARCH("(",A1)-1),按Enter键确认。注意,中文括号必须是全角符号,半角括号(即英文小括号)会返回#VALUE!错误。向下填充即可批量处理整列数据。如果原始数据中存在无括号的行,建议先用IFERROR包裹公式,否则整列会出现大量错误值,影响阅读。
使用TEXTBEFORE与TEXTAFTER一键提取首对英文括号内容
这是Excel 365和Excel 2024用户最省心的方法,无需记忆位置、不担心嵌套,逻辑直观:先截掉左括号前所有内容,再从结果中截掉右括号及之后部分。
方法一(标准写法):=TEXTBEFORE(TEXTAFTER(A1,"("),")")
方法二(加容错防崩溃):=IFERROR(TEXTBEFORE(TEXTAFTER(A1,"("),")"),"") —— 当A1不含“()”时直接返回空文本,避免#N/A污染报表。
操作很简单,直接把公式粘贴进去回车即可。但有一点必须注意:TEXTAFTER默认查找第一个“(”,TEXTBEFORE默认查找第一个“)”,因此它始终匹配最左侧的左括号和它右边最近的那个右括号——不是最外层,也不是最内层,而是“第一个左括号配它右边第一个右括号”。理解这个匹配逻辑,才能正确使用。
使用Power Query批量拆出所有括号内容
当需要处理“李四(北京)(技术中心)(架构师)”这类包含多对括号的文本,并且希望将每个括号里的内容分别放在不同列时,公式会变得冗长且难以维护,此时Power Query是稳定可靠的解决方案。
第一步:选中数据列 → 点击【数据】选项卡 → 【从表格/区域】→ 勾选“表包含标题”(如有)→ 确定进入Power Query编辑器。
第二步:在查询编辑器中,右键点击该列 → 【拆分列】→ 【按分隔符】→ 分隔符设为“(”→ 选择“在分隔符右侧”→ 点击确定。
第三步:此时新列包含类似“北京)(技术中心)(架构师)”的内容。对该列再次右键 → 【拆分列】→ 【按分隔符】→ 分隔符设为“)”→ 选择“在分隔符左侧”→ 点击确定。
第四步:删除原始列和中间生成的冗余列,只保留最后一步拆出的纯文本列。如果需要横向展开多个括号内容,可在第二步后改用【按每个出现次数拆分】,再对每列重复第三步操作。
【关键提醒】Power Query不会修改原表,所有操作都在独立编辑器中进行,关闭并上载前可随时撤销任何步骤。大胆尝试,出错了退出重来即可。
使用FILTERXML一次性提取全部括号内容(仅Windows版Excel 2013+)
这个方法能将一个单元格里所有括号内的文字全部提取出来,以垂直数组形式列出,适合作为下拉筛选源或进一步清洗。公式如下:
=FILTERXML(""&SUBSTITUTE(SUBSTITUTE(A1,"(",""),")","")&"
按Enter键确认后,公式会自动返回所有括号内的文本,每项占一行。如果想横向排列,外面套一层TRANSPOSE函数即可。
不过有一个限制:FILTERXML仅支持Windows系统,Mac版Excel和网页版Excel无法使用;而且原始文本中不能含有XML敏感字符(如<>&),否则需要先做预处理。如果使用Mac,建议使用Power Query。
