数式の参照先が#N/Aになる時の対処法


エクセルでvlookup関数など、数式を駆使して表計算をしていると、あるタイミングで#N/Aと表示されてしまい、その後の処理で全て#N/Aと表示されてしまうことありませんか?

そうなると、

  1. 見た目が悪い
  2. 行をまたいだ集計(sum, count)などが、とたんに出来なくなってしまう。

という事になってしまいますよね?本記事はこの場合の対処法です。それは、「isna関数」です。

isna関数


isna関数は数式セルに以下のように書きます。

=isna(セル)

isna関数は、#N/Aの場合には、TRUE, そうでない場合には、FALSEを返します。

これとif文を利用し、美しく、そして集計関数も可能にします。

=if(isna(セル), “”, エラーでない場合の処理)

とします。こうすることにより、#N/A関数が出た場合には、空白セルとなり、集計関数も問題なく計算可能になります。

下の図のように、#N/Aを含むと合計値を出せないですが、上のような処理を行うことで、合計値も計算できるようになります。

isna関数

 

では、#N/A以外にも#DIV/0!や#NAME?などのエラーも起こる可能性があり、それらを含めて判定したい場合にはどうしたらよいでしょうか?その場合は「iserror関数」を使います。

iserror関数


isna関数は#N/Aのみの判定でしたが、iserror関数は、以下の値を判定します。

  • #DIV/0!
  • #NAME?
  • #VALUE!
  • #REF!
  • #NUM!
  • #NULL!

上と同じように、

=iserror(セル)

の「セル」部分の中身が上の何れかの場合にTRUE, そうでない場合には、FALSEを返します。先程の例と同じように、

=if(iserror(セル), “”, エラーでない場合の処理)

として、利用します。

 

#N/Aを意図的に作るには?


では逆に、#N/Aを意図的に作るにはどうしたらよいでしょうか?任意の条件で、エラー発生として#N/Aを出力し、その場合を数えたい場合など、ごくまれではありますが、必要な場合があります。

その際には、

=na()

とすることで、#N/Aが出力されます。

是非試してみてくださいね!


COMMENTS