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

求可忽略单元格字母仅求和的Excel公式

Excel忽略单元格字母仅对数字求和的公式方案

方法1:适用于Excel 365/2021(动态数组支持)

直接用正则替换提取数字后求和,公式简洁高效:

=SUM(VALUE(REGEXREPLACE(A1:A6,"[^0-9.]","")))
  • 公式说明:
    • REGEXREPLACE(A1:A6,"[^0-9.]",""):把每个单元格里非数字、非小数点的字符全部清空,只留数字部分
    • VALUE():将提取出的数字字符串转成可计算的数值
    • SUM():对所有转换后的数值求和

方法2:兼容旧版Excel(无动态数组支持)

如果用的是Excel 2019及更早版本,用以下数组公式(输入时需按 Ctrl+Shift+Enter 确认):

=SUM(VALUE(MID(A1:A6,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1:A6&"0123456789")),LEN(A1:A6))))
  • 公式说明:
    • A1:A6&"0123456789":给每个单元格末尾补数字,避免因单元格无数字报错
    • FIND({0,1,2,...},...):定位单元格里第一个数字的位置
    • MIN():提取第一个数字的起始位置
    • MID():从起始位置开始提取后续内容(即数字部分),转数值后求和

方法3:自定义VBA函数(支持宏的环境)

如果允许启用宏,可编写自定义函数实现更灵活的数字提取:

  1. 按 Alt+F11 打开VBA编辑器
  2. 插入新模块,粘贴以下代码:
Function SumNumbers(rng As Range) As Double
    Dim cell As Range
    Dim numStr As String
    Dim char As String
    For Each cell In rng
        numStr = ""
        For i = 1 To Len(cell.Value)
            char = Mid(cell.Value, i, 1)
            ' 保留数字和小数点
            If IsNumeric(char) Or char = "." Then
                numStr = numStr & char
            End If
        Next i
        ' 把提取的数字字符串转成数值并累加
        If numStr <> "" Then SumNumbers = SumNumbers + CDbl(numStr)
    Next cell
End Function
  1. 返回Excel界面,直接在单元格中使用:
=SumNumbers(A1:A6)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 15:36:33