- 作成日 : 2025年8月25日
NA関数の使い方:意図的にエラー値を生成してデータ処理を制御する方法
NA関数は、#N/Aエラー値を返すエクセルの情報関数です。一見すると単純な機能ですが、グラフ作成時の空白データの処理、VLOOKUP関数との組み合わせ、条件付きエラー表示など、データ分析やレポート作成において使われます。
意図的にエラーを生成することで、データの欠損を明示したり、計算の流れを制御したりできます。本記事では、NA関数の基本的な使い方から実践的な活用法まで、具体例を交えて解説します。
目次
NA関数の基本的な使い方
NA関数とは
NA関数は「Not Available(利用不可)」を意味する#N/Aエラーを返す関数です。このエラーは「該当なし」や「データなし」を表現する際に使用され、他のエラー(#DIV/0!や#VALUE!など)とは異なる特別な意味を持ちます。
データ分析において、空白セルや0(ゼロ)とは異なる「データが存在しない」状態を明示的に示すことができ、後続の処理やグラフ表示で他の値と区別されて扱われます。特にグラフでは、#N/A のデータ点は描画されず線が途切れるため、欠損箇所に意図的なギャップを作れます。空白セルは[非表示および空白セルの設定]で「線で結ぶ」を選べば補間できますが、#N/A は補間されません。
基本構文
NA関数の構文は非常にシンプルです。
=NA( )
引数は不要で、常に#N/Aエラー値を返します。このシンプルさにより、条件付き処理にも適しています。
基本的な使用例
単純な使用例:
=NA( )
結果:#N/A
条件付きでの使用:
=IF(A1=””, NA(), A1*2)
A1が空白の場合は#N/A、それ以外は2倍の値を返します。
データ検証での使用:
=IF(売上<0, NA(), 売上)
負の売上(異常値)を#N/Aとして処理します。
NA関数の利用シーン
グラフ作成での活用
NA関数の最も一般的な用途は、グラフ作成時のデータ処理です。空白セルや0値とは異なり、#N/A値はグラフ上で特別に扱われます。
折れ線グラフでのギャップ表示(欠損の明示)
月次売上データで一部の月のデータが欠損している場合:
売上データの処理:
=IF(ISBLANK(B2), NA(), B2)
この処理により、欠損している月のデータ点は描画されず線は途切れます(ギャップ表示)。0 を入れると線が 0 まで落ちますが、#N/A なら欠損箇所に意図的なギャップを作れます。前後の値を線で結びたい場合は、セルを空白にしたうえで[非表示および空白セルの設定]で「線で結ぶ」を選択してください(#N/A は補間されません)。
条件付きグラフ表示
特定の条件を満たさないデータをグラフから除外:
閾値以上のみ表示:
=IF(売上>=目標値, 売上, NA())
期間限定表示::
=IF(AND(日付>=開始日, 日付<=終了日), 値, NA())
データ検証とクリーニング
データの完全性をチェックし、問題のあるデータを識別する際に使用します。
必須項目のチェック
すべての必須項目が入力されているか確認:
=IF(OR(ISBLANK(氏名), ISBLANK(メール), ISBLANK(電話)), NA(), “完了”)
数値の妥当性チェック:
=IF(OR(年齢<0, 年齢>150), NA(), 年齢)
データ型の検証
日付データの検証:
=IF(ISNUMBER(日付セル), 日付セル, NA())
数値データの検証:
=IF(ISNUMBER(VALUE(データ)), データ, NA())
NA関数の応用・他関数との組み合わせ
VLOOKUP関数との組み合わせ
検索結果が見つからない場合のエラー処理で、NA関数が活用されます。
エラーの明示的な処理
基本的なVLOOKUP:
=VLOOKUP(検索値, 範囲, 列番号, FALSE)
エラー時にメッセージ表示:
=IFERROR(VLOOKUP(検索値, 範囲, 列番号, FALSE), “データなし”)
意図的にNA()を返す:
=IF(COUNTIF(検索範囲, 検索値)=0, NA(), VLOOKUP(検索値, 範囲, 列番号, FALSE))
複数の検索結果の統合
複数テーブルからの検索:
=IFERROR(VLOOKUP(ID, テーブル1, 2, FALSE),
IFERROR(VLOOKUP(ID, テーブル2, 2, FALSE), NA()))
集計関数での挙動
NA関数が返す#N/A値は、各集計関数で異なる扱いを受けます。
各関数での#N/Aの扱い
SUM関数:#N/A を含むと結果は #N/A になります。エラーを無視して合計したい場合は、
=AGGREGATE(9, 6, 範囲) // 9:SUM, 6:エラー値を無視
AVERAGE関数:#N/A を含むと結果はエラーになります。
エラーを無視して平均する例:
=AGGREGATE(1, 6, 範囲) // 1:AVERAGE, 6:エラー値を無視
COUNT関数:#N/Aをカウントしない
=COUNT(A1:A10) // 数値のみカウント
MAX/MIN関数:#N/A を含むと結果はエラーになります。
エラーを無視して求める例:
=AGGREGATE(4, 6, 範囲) // 4:MAX
=AGGREGATE(5, 6, 範囲) // 5:MIN
AGGREGATE関数での活用
エラーを無視した集計:
=AGGREGATE(1, 6, 範囲) // 1:AVERAGE, 6:エラー値を無視
条件付き書式との連携
#N/A値を視覚的に識別しやすくする方法です。
エラーセルの強調表示
条件付き書式の設定:
=ISNA(A1)
書式:背景色を黄色に設定
複合条件:
=AND(ISNA(A1), B1=”重要”)
書式:背景色を赤に設定
動的な配列処理
Excel 365の動的配列機能と組み合わせた使用方法です。
FILTER関数との組み合わせ
有効なデータのみ抽出:
=FILTER(データ範囲, NOT(ISNA(データ範囲)))
条件に合わない場合はNA:
=FILTER(データ, 条件, NA())
(代替)=IFERROR(FILTER(データ, 条件), NA())
NA関数のよくある活用例と注意点
エラーの種類と使い分け
エクセルには複数のエラータイプがあり、適切に使い分けることが重要です。
#N/A:データが存在しない、該当なし
#DIV/0!:ゼロ除算エラー
#VALUE!:データ型の不一致
#REF!:参照エラー
#NAME?:関数名や範囲名の誤り
NA関数は#N/Aのみを生成し、「データなし」を明示的に表現する場合に使用します。
ISNA関数での判定
#N/A値を判定する専用の関数と組み合わせて使用します。
基本的な判定:
=ISNA(A1) // #N/AならばTRUE
条件分岐での使用:
=IF(ISNA(VLOOKUP(…)), “検索結果なし”, VLOOKUP(…))
カウント:
=SUMPRODUCT(–ISNA(範囲)) // #N/Aの個数
よくある間違いと対策
テキストとしての”#N/A”との混同
誤:=”#N/A” // テキスト文字列
正:=NA() // エラー値
判定方法:
=ISNA(A1) // エラー値の場合TRUE
=A1=”#N/A” // テキストの場合TRUE
他のエラー関数との使い分け
データなし:=NA()
計算不能:=1/0 // #DIV/0!を生成
型エラー:=”a”*1 // #VALUE! を生成(数値化できない文字列を数値演算)
(例)=VALUE(“abc”) や =DATEVALUE(“2025/13/01”) でも #VALUE! を生成します。
NA関数は、データがないことを示す関数
NA関数は、意図的に#N/Aエラーを返すことで「データが存在しない」状態を示すことができる、実務に役立つ情報関数です。特にグラフ作成時には、#N/A を使うことで欠損箇所をギャップ(線を途切れさせる)として明示できます。前後の点を線で結びたい場合はセルを空白にし、[非表示および空白セルの設定]で「線で結ぶ」を選択します(#N/A は結ばれません)。
SUM や AVERAGE は #N/A を含むとエラーになります。#N/A を無視して集計したい場合は、たとえば
- 合計:=AGGREGATE(9,6,範囲)(9:SUM, 6:エラー無視)
- 平均:=AGGREGATE(1,6,範囲)(1:AVERAGE, 6:エラー無視)
- あるいは =SUM(IFNA(範囲,0)) や =AVERAGE(IF(ISNUMBER(範囲),範囲))(配列数式)
といった方法を用いてください。
さらに、条件付き書式やISNA関数との組み合わせにより、可視的なエラーチェックや動的処理も行えます。
シンプルな構文でありながら、エラー処理とデータ可視化の橋渡し役として活躍するNA関数。グラフやレポートで「空白」や「ゼロ」とは異なる意味合いをもたせたい場面で、ぜひ積極的に活用しましょう。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
MATCH関数とは?使い方をわかりやすく解説
MATCH関数とは、ExcelやGoogleスプレッドシートにおいて、指定した値が範囲内のどの位置にあるかを返す関数です。MATCH関数を使用すると、大量のデータの中から必要な情報を迅速に見つけられます。MATCH関数は、他の関数と組み合わ…
詳しくみるDEGREES関数の使い方:ラジアンを度に変換する方法
DEGREES関数は、角度をラジアン単位から度単位に変換する関数です。三角関数の計算結果の表示、CADデータの角度変換、測量データの処理など、角度の単位変換が必要な場面で使われます。 例えば、エクセルの三角関数はラジアンで計算されるため、そ…
詳しくみるスプレッドシートで曜日を自動入力するには?便利な関数と活用テクニック
勤怠管理表やスケジュール表を作成する際、日付に対応する曜日を手入力していませんか?Googleスプレッドシートの曜日関連機能を使えば、自動的に曜日を表示でき、入力ミスを防ぎながら作業時間を大幅に短縮できます。 本記事では、曜日の自動入力方法…
詳しくみるエクセルで平均を出す方法の基本と応用
エクセルを使用することで、数値データの平均を簡単に求めることができます。基本的な平均の算出方法から、離れたセルや異なるシートを参照した平均値の計算、更にはゼロを除外して平均を求めるテクニックまで、幅広く解説していきます。それぞれの手法を理解…
詳しくみるIFNA関数の使い方!IFERRORとの違いやエラー表示方法、応用例を解説
IFNA関数(読み方:イフ・エヌ・エー関数)は、Excelで発生しやすい「#N/A」エラーを置き換えるための関数です。VLOOKUPやXLOOKUPなどの検索関数と組み合わせて使えば、エラー時に任意のメッセージや値を表示でき、シートの可読性…
詳しくみるエクセルグラフの横軸・縦軸数値を変更する方法をわかりやすく解説
エクセルで作成したグラフは、視覚的にデータを伝える強力なツールですが、横軸や縦軸の数値が適切でないと、正しい情報を得ることが難しくなります。本記事では、エクセルグラフの横軸と縦軸の数値を簡単に変更する方法を解説します。具体的な手順を追いなが…
詳しくみる