
スプレッドシートを使用してデータを管理していると「N/A」というエラーを目にすることがあります。これは参照先のデータが存在しない場合や、関数の計算結果が得られない場合に発生します。しかし、見栄えやデータの処理上エラーをそのまま表示させるのは避けたい場合も多いでしょう。
そこで役立つのが、ISNA関数です。この関数を使用することでN/Aエラーを検出し、適切な処理を行うことができます。本記事ではISNA関数の基本的な使い方から応用例まで詳しく解説します。
N/Aエラーとは?
スプレッドシートで「#N/A」エラーが表示されるのは主に以下のような場合です。
- VLOOKUP関数やHLOOKUP関数で検索した値が見つからないとき
- MATCH関数で一致する値がないとき
- INDEX関数で適切な参照ができないとき
例えば次のようなVLOOKUP関数の使用例を考えます。
=VLOOKUP(1001, A2:B10, 2, FALSE)
この場合、A列に1001という値が存在しないと「#N/A」エラーが返されます。
ISNA関数の基本
ISNA関数の構文
=ISNA(値)
- 値
- エラーかどうか判定する対象
ISNA関数は指定した値が「#N/A」エラーの場合にTRUE
を返し、それ以外の場合はFALSE
を返します。
使用例
以下の例では、セルB2にVLOOKUPの結果を取得し、それが「#N/A」かどうかを判定します。
=ISNA(VLOOKUP(1001, A2:B10, 2, FALSE))
A列に1001が存在しない場合、この数式はTRUE
を返し、存在する場合はFALSE
を返します。
N/Aエラーを表示させない方法
IF関数と組み合わせる
ISNA関数をIF関数と組み合わせることで、エラーが発生した場合に空白を表示したり、代替のメッセージを出したりできます。
=IF(ISNA(VLOOKUP(1001, A2:B10, 2, FALSE)), "データなし", VLOOKUP(1001, A2:B10, 2, FALSE))
この数式では1001が見つからない場合に「データなし」という文字列を表示し、見つかった場合はその値を表示します。
IFERROR関数を活用する
ExcelやGoogleスプレッドシートには、IFERROR関数という便利な関数があります。これを使うと、N/A以外のエラーも含めて処理できるため、より汎用的です。
=IFERROR(VLOOKUP(1001, A2:B10, 2, FALSE), "データなし")
この方法の利点はN/A以外のエラー(例えば#DIV/0!や#VALUE!など)も一括して処理できる点です。
FILTER関数を利用する(Googleスプレッドシート)
Googleスプレッドシートでは、FILTER関数を使用するとエラーを除外したリストを作成できます。
=FILTER(A2:B10, ISNA(A2:A10)=FALSE)
この数式はA列に「#N/A」が含まれている行を除外してB列のデータを表示します。
応用例
グラフにN/Aエラーを表示させない
データ分析を行う際、N/Aエラーが含まれているとグラフの描画に支障をきたすことがあります。以下の方法で、エラーを非表示にしてグラフを正しく表示できます。
=IF(ISNA(VLOOKUP(1001, A2:B10, 2, FALSE)), NA(), VLOOKUP(1001, A2:B10, 2, FALSE))
NA()
関数を使うとN/Aエラーとして処理されるが、グラフには影響を与えにくくなります。
データ集計でN/Aエラーを除外する
SUMやAVERAGE関数を使うとき、N/Aエラーが含まれていると計算ができません。これを防ぐには、IFERRORやIFNAを併用してエラーを除外します。
=SUM(IFNA(A2:A10, 0))
この方法を使えばN/Aエラーをゼロとして処理し、正しく合計を求めることができます。
まとめ
N/Aエラーはスプレッドシートのデータ処理でよく発生しますが、ISNA関数を使えば適切に判定し、表示をコントロールできます。以下の方法を用途に応じて使い分けるとより便利になります。
ISNA
+IF
でエラー時の表示を変更IFERROR
でN/A以外のエラーも含めて処理FILTER
でエラーを除外したリストを作成NA()
でグラフに影響を与えない処理IFNA
で計算時にエラーを回避
これらのテクニックを活用して、エラーの影響を抑えつつ、より効率的にスプレッドシートを管理しましょう。
他にもOfficeソフトに関する記事を上げています。是非色々見てみてください。