2017-09-05 143 views
2

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

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

包住整个事情到另一个IF输出一个0,如果负 –

+1

@GowthamShiva:用这种方法的问题是你最终不得不输入公式两次。 – Bathsheba

+0

你可以用A1来检查它是否超过60 –

回答

5

使用MAX():

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

原始方法,它确实为合理幅度的简单数据令人意想不到的好是

=IFERROR(EXP(LN(<your formula here>)),0) 

来包装你的公式这样做的好的属性,你不需要重复你的公式。

它起作用,因为LN将在非正数上失败,并且EXP将取消LN

(技术说明:Excel使用的IEEE754浮点双类型的数值,并LNEXP是相当自然的功能,适用于二进制浮点类型)

+0

感谢Bathsheba。 – John

+0

@约翰:快乐,你明智地接受其他答案。 – Bathsheba

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))