如何将excel负数替换为零?

如何将excel负数替换为零?,excel,Excel,我有下面的公式,有时输出是负数,你会如何用零替换负数输出作为同一公式的一部分?负极由(60-A1)*2*J1产生。谢谢 =IF((60-A1)*2*J1>$A$2,$A$2,(60-A10)*2*K1) 使用MAX(): 一个粗略的方法,对于合理大小的简单数据来说,它确实非常有效,就是用 =IFERROR(EXP(LN(<your formula here>)),0) =IFERROR(EXP(LN()),0) 这有一个很好的特性,你不需要重复你的公式 因为LN将在非正数

我有下面的公式,有时输出是负数,你会如何用零替换负数输出作为同一公式的一部分?负极由(60-A1)*2*J1产生。谢谢

=IF((60-A1)*2*J1>$A$2,$A$2,(60-A10)*2*K1)
使用MAX():


一个粗略的方法,对于合理大小的简单数据来说,它确实非常有效,就是用

=IFERROR(EXP(LN(<your formula here>)),0)
=IFERROR(EXP(LN()),0)
这有一个很好的特性,你不需要重复你的公式

因为
LN
将在非正数上失败,而
EXP
将反转
LN


(技术说明:Excel使用IEEE754浮点双精度类型作为其数值,
LN
EXP
是应用于二进制浮点类型的非常自然的函数。)

在数学中,只保留正数而用零替换负数的函数称为函数。如果您经常使用它,可以将其定义为VBA函数并直接在工作表中使用。在标准代码模块中,输入:

Function PositivePart(x As Double) As Double
    PositivePart = IIf(x >= 0, x, 0)
End Function
然后在工作表中使用:

=PositivePart(IF((60-A1)*2*J1>$A$2,$A$2,(60-A10)*2*K1))

将整个事件包装到另一个IF中,并输出一个0 IFnegative@GowthamShiva:这种方法的问题是,你最后不得不键入两次公式。你可以用A1检查它是否超过60。谢谢芭丝谢芭。@John:很高兴,你接受了另一个答案,这是明智的。
=PositivePart(IF((60-A1)*2*J1>$A$2,$A$2,(60-A10)*2*K1))