我试图找到两组数字之间的增量。有些数字是正数,有些是负数。
使用以下公式在 99% 的情况下都有效:
=IF(I18<0,I18+R18,IF(I18>0,I18-R18))
Run Code Online (Sandbox Code Playgroud)
但是,当I18
和R18
是负数时,我需要I18-R18
. 我已经尝试了多个IF
AND
语句,但似乎无法做到这一点。希望有人可以指导我朝着正确的方向前进。
Ste*_*edy 55
听起来您只想要I18
和之间的差异(增量)R18
,并且您希望它始终为正数?
这个公式将做到这一点:
=ABS(I18-R18)
无论I18
是正数、负数还是零,它都会给出正确的答案。
与其检查操作数是否为负,不如检查结果。
=IF(I18-R18>0,I18-R18,R18-I18)
Run Code Online (Sandbox Code Playgroud)
小智 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——这取决于您的数据和逻辑。
您可以使用以下内容:
=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)
归档时间: |
|
查看次数: |
8740 次 |
最近记录: |