我有以下公式,有时输出为负数,如何将负输出替换为零作为同一公式的一部分?负值由(60-A1)* 2 * J1产生。谢谢!
=IF((60-A1)*2*J1>$A$2,$A$2,(60-A10)*2*K1)
答案 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类型作为其数值,LN
和EXP
是应用于二进制浮点类型的相当自然的函数。)
答案 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))