2017-09-05 154 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))