两个数字之间的增量公式

Dav*_*ave 9 microsoft-excel

我试图找到两组数字之间的增量。有些数字是正数,有些是负数。

使用以下公式在 99% 的情况下都有效:

=IF(I18<0,I18+R18,IF(I18>0,I18-R18))
Run Code Online (Sandbox Code Playgroud)

但是,当I18R18是负数时,我需要I18-R18. 我已经尝试了多个IF AND语句,但似乎无法做到这一点。希望有人可以指导我朝着正确的方向前进。

Ste*_*edy 55

听起来您只想要I18和之间的差异(增量)R18,并且您希望它始终为正数?

这个公式将做到这一点:

=ABS(I18-R18)

无论I18是正数、负数还是零,它都会给出正确的答案。

  • 公平地说,该问题询问如何使嵌套的“IF()”正常工作。其他答案解决了提出的问题。但有时,走不同的道路会让你更快地到达正确的地方。 (11认同)
  • 看看其他答案有多复杂!把事情简单化! (3认同)

JoL*_*JoL 6

与其检查操作数是否为负,不如检查结果。

=IF(I18-R18>0,I18-R18,R18-I18)
Run Code Online (Sandbox Code Playgroud)

  • 条件也可以替换为`I18&gt;R18` (3认同)

小智 5

让我们简化您的原始代码:

If X < 0:
    Z = X + Y

Else X > 0:
    Z = X - Y
Run Code Online (Sandbox Code Playgroud)

现在你说当 X < 0 和 Y < 0 时,你实际上希望结果是 X - Y 而不是 X + Y。好的。

If Y < 0:
   If X < 0:
      Z = X - Y
   Else:
      Z = X + Y
Else:
   If X < 0:
      Z = X - Y
   Else:
      Z = X + Y
Run Code Online (Sandbox Code Playgroud)

是这样写的。

=IF(R18<0,IF(I18<0,I18-R18,I18+R18),IF(I18<0,I18-R18,I18+R18))
Run Code Online (Sandbox Code Playgroud)

如上所述,您没有零案例。您可以通过简单地添加一个等号将 LT/GT 比较器之一更改为 LE/GE——这取决于您的数据和逻辑。


Pet*_*erH 3

您可以使用以下内容:

=IF(AND(I18<0,R18<0),I18-R18,IF(I18<0,I18+R18,IF(I18>0,I18-R18)))
Run Code Online (Sandbox Code Playgroud)

我能看到的唯一缺陷是,在I18 = 0没有为此设置任何内容的情况下,您会做什么。

无论如何,如果您想为此实例添加一些内容,请参见下文:

=IF(AND(I18<0,R18<0),I18-R18,IF(I18<0,I18+R18,IF(I18>0,I18-R18,"IF I18 = zero goes here")))
Run Code Online (Sandbox Code Playgroud)