Excel 如果值小于0,则从单元格中减去值

Excel 如果值小于0,则从单元格中减去值,excel,excel-formula,Excel,Excel Formula,我希望在Excel表格中有一列数值,如果某个单元格的值小于0,则从另一个单元格的值中减去该负值。例如: D5包含值300 D6包含值5——不能从D5中减去任何值 D7包含值-1——现在减去:D5-D7(或者实际上是D5+(-D7),D5的结果是:299) D8包含值0——无需减法 D9包含值-100——现在减去:D5-D7-D9(D5的结果:300-1-100=199) 等等,等等 我怎样才能做到这一点呢?要改变一个值,需要一个nacro。如果我们从以下方面开始: 首先选择单元格D5并运行此短

我希望在Excel表格中有一列数值,如果某个单元格的值小于0,则从另一个单元格的值中减去该负值。例如:

D5包含值300

D6包含值5——不能从D5中减去任何值

D7包含值-1——现在减去:D5-D7(或者实际上是D5+(-D7),D5的结果是:299)

D8包含值0——无需减法

D9包含值-100——现在减去:D5-D7-D9(D5的结果:300-1-100=199)

等等,等等


我怎样才能做到这一点呢?

要改变一个值,需要一个nacro。如果我们从以下方面开始:

首先选择单元格D5并运行此短宏:

Sub DecreaseValue()
    Dim N As Long, i As Long, M As Long

    N = Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row
    M = ActiveCell.Column

    For i = ActiveCell.Row + 1 To N
        If Cells(i, M).Value < 0 Then
            ActiveCell.Value = ActiveCell.Value + Cells(i, M).Value
        End If
    Next i
End Sub
Sub-DecreaseValue()
暗N一样长,我一样长,我一样长
N=单元格(Rows.Count,ActiveCell.Column).End(xlUp).Row
M=ActiveCell.Column
对于i=ActiveCell.Row+1到N
如果单元格(i,M).值小于0,则
ActiveCell.Value=ActiveCell.Value+Cells(i,M).Value
如果结束
接下来我
端接头
这将产生:

可以通过使用单独的单元格保存减少的值来避免使用宏。例如,在单元格E5中输入:

=D5+SUMPRODUCT((D6:D9999<0)*(D6:D9999))

=D5+SUMPRODUCT((D6:D9999)您希望结果在自己的单元格中还是要替换现有值???@Gary的学生目标是只更新D5值。因此根据我的示例,当我添加值为-99的D10单元格时,D5的值为100(300-1-100-99=100)。非常感谢!第二个解决方案(使用附加单元格)这正是我需要的。@mchfrnc感谢您的反馈。