goo

エクセルのエラー回避・究極のワザ

2008年09月25日 | よしなしごと
エクセルを使っているといろんなエラーに出くわしますね。たとえば#DIV/O(0で割った)とか#NUM(数字でないセルを数時として扱った)とか、#REF (無効なセルを参照)などなど。管理人いままでたとえば#DIV/Oを回避するために、

=IF(D5<>0,A5/D5,"")

注:以下""は、間をあけずに"二つ。

なんてやっていましたが、この場合もA5やD5に数字以外のものが入っていると今度は#VALUEとなってしまうとか、エラー回避は面倒なもの、といってほうっておくとワークシート全体が#DIV/Oや#NUMや#REFで埋まってしまいかねません。

=IF(D5<>0,IF(D5<>" ",IF(A5<>" ",A5/D5," ")," ")," ")

なんて際限がない……

ご心配なく、やっと見つけました、万能エラー回避関数を!

=IF(ISERROR(数式),"",数式)

ISERRORは続く数式が何らかのエラーを起こした時、正を返す、つまりIFの条件が正ととなりますので、ブランクを表示、エラーがない場合は偽となりますので、数式通りに実施。

もちろん、

=IF(ISERROR(数式)=TRUE,"",数式)

と書いてもいいのですが、=TRUEはあってもなくてもいい、そうしたらない方が簡単!

この関数を使って

=IF(D5<>0,A5/D5,")

や、

=IF(D5<>0,IF(D5<>" ",IF(A5<>" ",A5/D5," ")," ")," ")

を書きなおすと、

=IF(ISERROR(A5/D5),"",A5/D5)

()の羅列とくらべるとずっと簡単ですね。ワンパターンですので、一度書き方を覚えれば応用のきくこと無限大です。