暂时想到两种方法
一、使用EVALUATE+辅助列求和,具体参见下图

二、使用vba进行求和,效果见动态,代码供参考
情况一:数据已经输入好,假设数据在A列,结果输出到B1
注:如果实际表格中数据不在A列,则需要对代码进行修改,假设:实际数据在C列,结果需要输出到D3,那么将代码中所有Range(“A1”)改成Range(“C1”),将[b1]改成[d3]
动图

代码
Sub 已有数据求和()
c_num = Cells(1048576, Range("A1").Column).End(xlUp).Row
For i = 1 To c_num
sumVal = sumVal + Evaluate(Cells(i, Range("A1").Column).Value)
Next i
[b1] = sumVal
End Sub
情况二:数据未数据,需要在输入时进行实时计算,假设在A列数据,结果输出到B1
注:如果实际表格中不是输入在A列,则需要对代码进行修改,假设:实际数据输入在C列,结果需要输出到D3,那么将代码中所有的 Like "A*" 改成 Like ”C*",将[b1]改成[d3]
动图

代码
Dim a As Integer
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application.DisplayAlerts = False
If Target.Address(0, 0) Like "A*" Then
If a = 0 Then
[b1] = [b1] + Evaluate(Target.Value)
Else
c_num = Cells(1048576, Target.Column).End(xlUp).Row
For i = 1 To c_num
sumVal = sumVal + Evaluate(Cells(i, Target.Column).Value)
Next i
[b1] = sumVal
End If
End If
Application.DisplayAlerts = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Target.Address(0, 0) Like "A*" And Target.Value <> "" Then
a = 1
Else
a = 0
End If
End Sub