如何用零替换excel负数?

时间:2017-09-05 15:36:22

标签: excel

我有以下公式,有时输出为负数,如何将负输出替换为零作为同一公式的一部分?负值由(60-A1)* 2 * J1产生。谢谢!

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

3 个答案:

答案 0 :(得分:5)

使用MAX():

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

答案 1 :(得分:2)

粗略的方法,对于具有合理幅度的简单数据而言,其效果非常好,就是用

包装公式
=IFERROR(EXP(LN(<your formula here>)),0)

这有一个很好的属性,你不需要重复你的公式。

一切正常,因为LN会因非正数而失败,而EXP会撤消LN

(技术说明:Excel使用IEEE754浮点double类型作为其数值,LNEXP是应用于二进制浮点类型的相当自然的函数。)

答案 2 :(得分:0)

在数学中,单独留下正数但将负数替换为零的函数称为positive part函数。如果您经常使用它,可以将其定义为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))