You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel中删除行内文本与数字 仅保留括号内的数值

Excel仅保留括号内数字的解决方案

核心处理逻辑是直接定向提取所有括号内的数字片段,跳过括号外所有内容(含文字、零散数字、符号),从根源上避免分列时出现多余列、顺序错乱的问题,提供两种可直接落地的方案:

方案1:原生公式方案(无需开启宏)

适用于Excel 2016及以上版本,假设原始数据存放在A列,从A2单元格开始,在相邻空白单元格输入以下公式:
=TEXTJOIN(" ",TRUE,IFERROR(--MID(A2,FIND("(",A2,ROW($1:$99))+1,FIND(")",A2,FIND("(",A2,ROW($1:$99)))-FIND("(",A2,ROW($1:$99))-1),""))

  • Excel 365/2021版本直接按回车即可生效,下拉填充整列
  • 2019及更早版本输入完公式后,按Ctrl+Shift+Enter三键结束数组公式
    公式会自动按顺序遍历单元格内所有成对括号,截取括号内的数字,最终用空格拼接成规整字符串,直接对结果列做分列操作即可,不会出现多余内容。

方案2:VBA自定义函数方案(适合大数据量场景)

如果单表数据超过万行,公式计算卡顿可以用这个方案,步骤如下:

  • 按快捷键Alt+F11调出VBA编辑器
  • 在左侧工程栏右键点击当前工作簿名称,依次选择「插入」-「模块」
  • 将下方代码粘贴到弹出的模块代码窗口中:
Function GetBracketNum(rng As Range) As String
    Dim regEx As Object, matches As Object, i As Integer
    Set regEx = CreateObject("VBScript.RegExp")
    With regEx
        .Global = True
        .Pattern = "\((\d+)\)"
        Set matches = .Execute(rng.Value)
        For i = 0 To matches.Count - 1
            GetBracketNum = GetBracketNum & " " & matches(i).submatches(0)
        Next
        GetBracketNum = Trim(GetBracketNum)
    End With
End Function
  • 回到Excel工作表界面,在空白单元格输入=GetBracketNum(A2),下拉填充即可得到和公式方案一致的规整结果。

注意:如果你的数据里用的是中文全角括号(),只需要把VBA代码里的Pattern参数改为"\((\d+)\)",同时把公式里FIND函数查找的半角(、)替换为全角括号即可正常匹配。

内容的提问来源于stack exchange,提问作者Alice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 02:33:43