我正在尝试找出两组数字之间的差值。有些数字是正数,有些是负数。
使用以下公式大约 99% 的时间都是有效的:
=IF(I18<0,I18+R18,IF(I18>0,I18-R18))
但是,当I18
和R18
为负数时,我需要I18-R18
。我尝试了多个IF
AND
语句,但似乎无法正确执行。希望有人能为我指明正确的方向。
答案1
听起来你只是想要I18
和之间的差异(delta) R18
,并且希望它始终为正?
此公式可以实现以下目的:
=ABS(I18-R18)
I18
无论是正数、负数还是零,它都会给出正确的答案。
答案2
不要检查操作数是否为负数,而要检查结果。
=IF(I18-R18>0,I18-R18,R18-I18)
答案3
让我们简化您的原始代码:
If X < 0:
Z = X + Y
Else X > 0:
Z = X - Y
现在,您说当 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
那是写的。
=IF(R18<0,IF(I18<0,I18-R18,I18+R18),IF(I18<0,I18-R18,I18+R18))
如上所述,您没有零情况。您可能只需添加等号即可将其中一个 LT/GT 比较器更改为 LE/GE - 具体取决于您的数据和逻辑。
答案4
我不知道 ABS。我本来想建议
=SQRT((I18-R18)^2)