- 作成日 : 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関数。グラフやレポートで「空白」や「ゼロ」とは異なる意味合いをもたせたい場面で、ぜひ積極的に活用しましょう。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
LEFT関数とRIGHT関数の使い方をわかりやすく解説
ExcelやGoogleスプレッドシートでデータを扱う際、LEFT関数とRIGHT関数は非常に便利なツールです。これらの関数を使用することで、文字列の先頭や末尾から特定の文字数を抽出することができ、データの整理や加工がスムーズに行えます。特…
詳しくみるエクセルで電話番号の「0」が消える!原因と一括設定テクニック
エクセルに電話番号を入力すると、先頭の「0」が勝手に消えてしまって困った経験はありませんか?これは、エクセルが数字データを自動的に「数値」として認識し、数学的な意味を持たない先頭のゼロを省略してしまうために起こります。 この記事では、なぜ電…
詳しくみるヒストグラムをエクセルで簡単に作る方法を解説
ヒストグラムは、データの分布を視覚的に示すための重要なグラフです。特にエクセルを使用すれば、簡単にヒストグラムを作成することができ、分析や報告の際に役立ちます。本記事では、エクセルを使ったヒストグラムの作成方法を具体的に解説します。データの…
詳しくみるERF関数の使い方:誤差関数を計算して統計分析を行う方法
ERF関数は、誤差関数(Error Function)の値を計算する統計関数です。正規分布に関連する確率計算や、品質管理における不良品率の推定、科学技術計算での誤差評価など、高度な統計分析で使用されます。例えば、製造工程での品質のばらつきを…
詳しくみるCOMBIN関数の使い方:組み合わせの数を計算する方法
COMBIN関数は、指定された個数の要素から特定の個数を選ぶ組み合わせの数を計算する関数です。統計分析での標本抽出、品質管理での検査計画、プロジェクト管理でのチーム編成、くじや抽選の確率計算など、様々な場面で活用されます。例えば、10人から…
詳しくみるCOUNTA関数とは?使い方やCOUNT関数との違い
Excelなどのスプレッドシートでデータの集計を行う際に役立つ「COUNTA関数」。この関数は、指定した範囲内の非空白のセルの数をカウントする機能を持っています。一見シンプルに思えるCOUNTA関数ですが、実際にはデータ分析やレポーティング…
詳しくみる