excel中如何将某一单元格的数值和此单元格以下的所有负数进行汇总,如果遇到正数则自动停止??

excel中如何将某一单元格的数值和此单元格以下的所有负数进行汇总,如果遇到正数则自动停止??比如
A B C
10
-1
-2
-3
5
设置一个命令从A1开始,自动将A1与A1以下的所有负数进行加法汇总,遇到A5是正数的话则不计算在内,最终的计算结果是4
我希望这个=A1+SUMIF(A2:A5,"<0",A2:A5) 命令里最好不要指定明确的范围,因为在中间我可能会插入行,这样范围就不对了,希望函数是指定单元格和单元格下所有是负数的单元格汇总,遇到正数则自动停止探测。

sxpose实在太感谢你了,不过发现还有一个问题,那就是如果我在某一行中插入几行输入几个负数,右边函数计算的数值不会自动刷新最新数值

Public Function QiuHe(irng As Range) As Variant
If irng.Count > 1 Then QiuHe = "#num": Exit Function
If Not IsNumeric(irng.Value) Then QiuHe = "#num": Exit Function
Dim i As Long: i = 1
Dim iresult As Variant: iresult = irng.Value
Do While (irng.Offset(i, 0) <> "") And (irng.Offset(i, 0) < 0)
iresult = iresult + irng.Offset(i, 0).Value
i = i + 1
Loop
QiuHe = iresult
End Function
------------
把这段代码加入模块中,然后可以在单元格中用这个自编的公式,与正常的公式一样使用

假设 A 列从 A1 开始是你的数字,在B列输入公式,向下填充即可
=qiuhe(A1)
---------------------

下面是计算结果

A列 B列
2.5 2.5
3.1 -0.9
-4 -4
3 0
-2 -3
-1 -1
8 2
-6 -6
a #num
7 4
-2 -3
-1 -1
-----------------

代码加入模块的方法:

Alt + F11 键,进入VBA编辑器。
右击左边的“Microsoft Excel 对象”,在弹出的菜单中点击“插入”-“模块”。
双击模块,在右边把以上代码复制进去。保存。
就可以使用这个自定义函数 qiuhe() 了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-08-13
=A1+SUMIF(A2:A5,"<0",A2:A5)
相似回答