2010-12-15 3 views
2

これは実際のプログラミングとはみなされていないが、Excelにあるので謝っているが、助けが必要だ。それはDIV/0エラーを返した場合、それは代わりに#DIV/0!の0の値を渡しますように、私はそれに何ができるexcel 2007でdiv/0エラーが発生すると大きな式で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) 

は大丈夫そう、私はExcelであれば、非常に大きな式を有しますエラー?ので、どのように私は私の現在の式にあることを追加し、それを破ることができない場合

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

ありがとうございました!

EDIT: ティムしようとしたあなたの提案:

=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'コードとは何ですか? –

+0

LF $ 1139には数式があり、数式はありません。 – Furlong

答えて

2

=IsError(100/0)TRUEを返すため、出力を0にする前に、条件を行います、=IF(IsError(*),0,...)

1

このような数式全体を複製することはお勧めしません。複雑な数式がちょうど2倍複雑になりました。

分割は1か所でしか発生しないため、小切手を置くことをおすすめします。この:

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

はこのようになります。

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

それでも、div/0エラーが発生しました。 – Furlong

4

Excel 2007では、あなたは次のように使用できる新しいIFERROR関数を持っています

=IFERROR(MyLongFormula,0) 
+0

これには、数式が1回だけ入力されるという利点があります。 –

関連する問題