Excel提取括号内文本的实用方法
时间:2026-03-09 14:18:35 430浏览 收藏
本文系统讲解了在Excel中高效提取括号内文本的五种实用方法——从兼容老版本的MID+FIND与SUBSTITUTE+FIND组合公式,到新版Excel专属的简洁函数TEXTBEFORE+TEXTAFTER,再到无需写公式的Power Query图形化操作,以及可一键复用、智能识别中英文括号的VBA自定义函数,全面覆盖不同版本、不同技能水平和不同数据规模的需求,助你告别手动复制的低效与错误,轻松实现括号内容的精准、批量、自动化提取。

如果您在Excel中需要从包含括号的文本字符串中快速提取括号内的内容,则可能是由于原始数据格式不统一、人工逐条复制效率低下。以下是多种可直接套用的提取方法:
一、使用MID与FIND组合公式提取第一个中文括号内文本
该方法适用于文本中仅含一对中文全角括号(“(”和“)”),且目标内容位于第一对括号之间。公式通过定位左括号与右括号的位置,计算起始点与字符长度,从而截取中间内容。
1、选中目标列右侧空白单元格(例如B1),输入以下公式:
=MID(A1,FIND("(",A1)+1,FIND(")",A1)-FIND("(",A1)-1)
2、按Enter确认计算结果。
3、将B1单元格右下角填充柄向下拖拽,批量应用至其他行。
二、使用SUBSTITUTE嵌套配合FIND提取英文半角括号内文本
该方法适用于处理英文半角括号(“(”和“)”),尤其当原文本中存在多个括号但只需提取最内层或首个左括号对应右括号之间的内容时。通过替换左括号为特殊分隔符,再结合FIND定位,规避嵌套干扰。
1、在空白单元格中输入公式:
=TRIM(MID(SUBSTITUTE(A1,"(",REPT(" ",100)),2,100))
2、在另一列中对上一步结果继续处理,输入:
=LEFT(B1,FIND(")",B1)-1)
3、合并为单公式(可选):
=TRIM(LEFT(SUBSTITUTE(MID(A1,FIND("(",A1),LEN(A1)),"(",REPT(" ",100)),100),FIND(")",SUBSTITUTE(MID(A1,FIND("(",A1),LEN(A1)),"(",REPT(" ",100)),100))-1))
三、使用TEXTBEFORE与TEXTAFTER函数(Excel 365 / 2021版)
该方法适用于已安装支持动态数组函数的最新版Excel,语法简洁、容错性强,可自动识别括号边界并提取中间内容,无需嵌套复杂定位逻辑。
1、在空白单元格中输入:
=TEXTAFTER(TEXTBEFORE(A1,")"),"(")
2、若需兼容左括号为半角的情况,分别使用:
=TEXTAFTER(TEXTBEFORE(A1,")"),"(")
3、如原始文本可能不含括号导致报错,可包裹IFERROR:
=IFERROR(TEXTAFTER(TEXTBEFORE(A1,")"),"("), "")
四、使用Power Query图形化提取(无需记忆公式)
该方法适用于大批量、多格式括号文本的结构化清洗,支持可视化操作与步骤复用,提取逻辑稳定,适合非编程用户长期维护数据流程。
1、选中数据列 → 【数据】选项卡 → 点击【从表格/区域】→ 勾选“表包含标题”→ 确定进入Power Query编辑器。
2、右键点击含括号的列 → 选择【拆分列】→ 【按分隔符】→ 在分隔符框中输入“(”→ 选择“在每个分隔符处拆分”→ 点击确定。
3、再次右键新生成的右侧列 → 【拆分列】→ 【按分隔符】→ 输入“)”→ 选择“在左侧最左分隔符处拆分”→ 点击确定。
4、删除不需要的辅助列,保留仅含括号内内容的列 → 【主页】→ 【关闭并上载】→ 数据自动回填至工作表。
五、使用VBA自定义函数实现一键提取
该方法适用于高频重复使用场景,一旦定义完成,可在任意单元格像普通函数一样调用,支持中英文括号自动识别与多对括号时提取首对内容,扩展性强。
1、按Alt+F11打开VBA编辑器 → 插入 → 模块 → 粘贴以下代码:
Function ExtractInParentheses(cell As Range) As String
Dim txt As String, startP As Long, endP As Long
txt = cell.Value
startP = InStr(txt, "(")
If startP = 0 Then startP = InStr(txt, "(")
If startP = 0 Then ExtractInParentheses = "": Exit Function
endP = InStr(startP, txt, ")")
If endP = 0 Then endP = InStr(startP, txt, ")")
If endP = 0 Then ExtractInParentheses = "": Exit Function
ExtractInParentheses = Mid(txt, startP + 1, endP - startP - 1)
End Function
2、返回Excel,在单元格中输入:
=ExtractInParentheses(A1)
3、按Enter执行,函数即刻返回括号内文本。
今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
193 收藏
-
274 收藏
-
387 收藏
-
225 收藏
-
177 收藏
-
236 收藏
-
167 收藏
-
460 收藏
-
477 收藏
-
112 收藏
-
444 收藏
-
303 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习