Excel 2019中对带短横线分隔符的单元格数字求和的公式或VBA方法
方案1:Excel内置公式实现
适用Excel 365/2021及以上版本
假设存储目标文本的单元格为A1,直接输入以下公式即可得到求和结果:=SUM(--TEXTSPLIT(A1,"-"))
公式逻辑:先用TEXTSPLIT按照分隔符-将文本拆分为独立的数值文本段,通过双减号将文本格式的数值转换为可计算的数字类型,最后用SUM函数完成求和。你的示例输入计算后将直接返回12.9。
适用Excel 2013及以上版本(无TEXTSPLIT函数的场景)
可以用FILTERXML实现相同效果,公式如下:=SUM(FILTERXML("<t><s>"&SUBSTITUTE(A1,"-","</s><s>")&"</s></t>","//s"))
方案2:VBA自定义函数实现(全Excel版本兼容)
如果需要兼容更低版本Excel,或者需要高频复用该能力,可以自定义函数:
- 按
Alt+F11打开VBA编辑器,点击顶部「插入」→「模块」 - 在代码编辑窗口粘贴以下代码:
Function SumSeparateNums(rng As Range, Optional sep As String = "-") As Double Dim numArr As Variant Dim i As Long numArr = Split(rng.Value, sep) For i = LBound(numArr) To UBound(numArr) SumSeparateNums = SumSeparateNums + Val(numArr(i)) Next i End Function
- 关闭VBA编辑器返回表格,在空白单元格输入
=SumSeparateNums(A1)即可得到结果。如果后续需要处理其他分隔符的内容,只需传入第二个参数即可,比如分隔符为逗号时使用=SumSeparateNums(A1,",")。
内容的提问来源于stack exchange,提问作者Parabol
相关产品推荐
相关产品推荐

