エクセルを使っているといろんなエラーに出くわしますね。たとえば#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)
()の羅列とくらべるとずっと簡単ですね。ワンパターンですので、一度書き方を覚えれば応用のきくこと無限大です。
=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)
()の羅列とくらべるとずっと簡単ですね。ワンパターンですので、一度書き方を覚えれば応用のきくこと無限大です。