2010-12-15 38 views
2

我很抱歉如果這不被認爲是真正的編程,因爲它在Excel中,但我需要幫助,這是我知道的最有用的地方!在excel 2007中有一個div/0錯誤返回一個0在一個大公式中

好了,所以我有一個非常大的,如果公式在Excel:

=IF(AND(($EZ16+LF$1139)>$B$1145,($EZ16+LF$1139)<$B$1146),IF(OR(AND($FB16<LF$1141,$FB16>LF$1142),AND($FE16<LF$1141,$FE16>LF$1142),AND($FH16<LF$1141,$FH16>LF$1142),AND($FK16<LF$1141,$FK16>LF$1142),AND($FN16<LF$1141,$FN16>LF$1142),AND($FQ16<LF$1141,$FQ16>LF$1142),AND($FT16<LF$1141,$FT16>LF$1142),AND($FW16<LF$1141,$FW16>LF$1142),AND($FZ16<LF$1141,$FZ16>LF$1142),AND($GC16<LF$1141,$GC16>LF$1142),AND($GF16<LF$1141,$GF16>LF$1142)),FALSE,(EU16/EI16-1)),FALSE) 

我能做些什麼吧,這樣,如果它返回一個DIV/0錯誤它會通過一個0值,而不是#DIV/0!的錯誤?

難道是這樣的:

=IF(ISERROR(A1/B1),0,A1/B1) 

如果是的話我怎麼能添加到我目前的公式,而不是打破它?它會是:

=IF(ISERROR(IF(AND(($EZ16+LF$1139)>$B$1145,($EZ16+LF$1139)<$B$1146),IF(OR(AND($FB16<LF$1141,$FB16>LF$1142),AND($FE16<LF$1141,$FE16>LF$1142),AND($FH16<LF$1141,$FH16>LF$1142),AND($FK16<LF$1141,$FK16>LF$1142),AND($FN16<LF$1141,$FN16>LF$1142),AND($FQ16<LF$1141,$FQ16>LF$1142),AND($FT16<LF$1141,$FT16>LF$1142),AND($FW16<LF$1141,$FW16>LF$1142),AND($FZ16<LF$1141,$FZ16>LF$1142),AND($GC16<LF$1141,$GC16>LF$1142),AND($GF16<LF$1141,$GF16>LF$1142)),FALSE,(EU16/EI16-1)),FALSE))**),0,IF**(AND(($EZ16+LF$1139)>$B$1145,($EZ16+LF$1139)<$B$1146),IF(OR(AND($FB16<LF$1141,$FB16>LF$1142),AND($FE16<LF$1141,$FE16>LF$1142),AND($FH16<LF$1141,$FH16>LF$1142),AND($FK16<LF$1141,$FK16>LF$1142),AND($FN16<LF$1141,$FN16>LF$1142),AND($FQ16<LF$1141,$FQ16>LF$1142),AND($FT16<LF$1141,$FT16>LF$1142),AND($FW16<LF$1141,$FW16>LF$1142),AND($FZ16<LF$1141,$FZ16>LF$1142),AND($GC16<LF$1141,$GC16>LF$1142),AND($GF16<LF$1141,$GF16>LF$1142)),FALSE,(EU16/EI16-1)),FALSE)) 

謝謝你的幫助!

編輯: 添了想你的建議:

=IF(AND(($EZ16+LF$1139)>$B$1145,($EZ16+LF$1139)<$B$1146),IF(OR(AND($FB16<LF$1141,$FB16>LF$1142),AND($FE16<LF$1141,$FE16>LF$1142),AND($FH16<LF$1141,$FH16>LF$1142),AND($FK16<LF$1141,$FK16>LF$1142),AND($FN16<LF$1141,$FN16>LF$1142),AND($FQ16<LF$1141,$FQ16>LF$1142),AND($FT16<LF$1141,$FT16>LF$1142),AND($FW16<LF$1141,$FW16>LF$1142),AND($FZ16<LF$1141,$FZ16>LF$1142),AND($GC16<LF$1141,$GC16>LF$1142),AND($GF16<LF$1141,$GF16>LF$1142)),FALSE,IF(EI16=1,0,EU16/EI16-1)),FALSE) 

仍然得到一個錯誤#DIV/0,任何想法,爲什麼?

+1

這看起來不像是有效的Excel語法。什麼是LF碼? – 2010-12-15 17:25:54

+0

LF $ 1139有一個數字,沒有公式。 – Furlong 2010-12-15 17:45:46

回答

2

=IsError(100/0)將返回TRUE,所以把條件之前,輸出0,=IF(IsError(*),0,...)

1

我不會推薦重複這樣的整個公式:一個複雜的公式剛剛變得複雜一倍。

由於部門只發生在一個地方,我建議把檢查在那裏。這:

...(EU16/EI16-1)... 

變成這樣:

...IF(EI16=1, 0, EU16/EI16-1)... 
+0

試過,仍然得到一個div/0錯誤。 – Furlong 2010-12-15 17:32:02

4
Excel 2007中

有,你可以使用像一個新的IFERROR函數

=IFERROR(MyLongFormula,0) 
+0

這有附加的優點,公式只輸入一次。 – 2013-10-22 18:18:59

相關問題