Excelで「#N/A」というエラーを見ると、何か間違えてしまったかな…と焦ってしまいますよね。
でも実は、Excelには #N/Aエラーを意図的に発生させるための関数 が用意されています。それが NA関数 です。「エラーを出すための関数って、どんな場面で使うの?」と疑問に思いますよね。
この記事では、ExcelのNA関数の基本から、グラフのプレースホルダー、VLOOKUPとの連携、データ未入力の可視化まで、4つの実務シーンで使い方を解説します。IFNA・ISNA・IFERRORとの違いも比較表でまとめるので、エラー処理関数の使い分けにも迷わなくなりますよ。
ExcelのNA関数とは?意図的に#N/Aエラーを返す関数
NA関数は、セルに #N/Aエラーを意図的に発生させる 関数です。#N/A は「Not Available(情報がない・該当なし)」を意味するエラー値で、Excelの代表的なエラー7種のひとつです。
「エラーを出すための関数なんて、何の役に立つの?」と思いますよね。実はこれ、データ分析やグラフ作成の現場ではとても重宝される関数なんです。
NA関数の基本概念
NA関数は引数を取らず、=NA() と書くだけで #N/A を返します。読み方は「エヌエー」または「ナ」です。
=NA()
セルに上の数式を入れると、結果は #N/A になります。一見「ただエラーを表示するだけ」に見えますが、ここがミソです。
なぜエラーを意図的に出す関数があるのか
NA関数は、もともと他の表計算ソフトとの互換性のために用意された関数です。ただ、現代のExcel運用では「エラーを意図的に発生させる」という独自の役割が確立しています。
主な使いどころは次の3つです。
- グラフのプロットを意図的にスキップしたい
- 未入力データを「未入力」と明示的に示したい
- VLOOKUPやIFNAなどと組み合わせて条件分岐を作りたい
つまりNA関数は「エラーを味方につける」ための関数なんですよね。詳しい使い方は後ほど4つのシーンで解説します。
ExcelのNA関数の基本的な使い方
それでは具体的な書き方を見ていきましょう。NA関数は引数なしで使える、Excel関数の中でもかなりシンプルな部類です。
構文
NA関数の構文はこれだけです。
=NA()
引数を取らないので、カッコの中は空のままにします。引数を渡すとエラーになるので注意してください。
| 項目 | 内容 |
|---|---|
| 構文 | =NA() |
| 引数 | なし |
| 戻り値 | #N/A |
| エラー値の意味 | Not Available(情報なし・該当なし) |
=NA() を入力して#N/Aを返す
実際にセルに =NA() と入力してみてください。結果は #N/A と表示されます。
A1: =NA() → #N/A
A2: =NA()*2 → #N/A
A3: =A1+1 → #N/A
ここでポイントなのが、#N/A を含むセルを参照した計算結果も #N/A になる ことです。エラーが連鎖するので、後続の集計関数(SUM・AVERAGEなど)もエラーになります。これは欠点ではなく、後で紹介するように「未確定データを集計から除外する」用途で活躍する性質です。
対応バージョン
NA関数は古くから提供されており、Excel 2007以降のすべてのバージョンで使えます。Microsoft 365、Excel for Mac、Excel Online でも同じように動きます。互換性を気にせず使える、安心の標準関数ですよ。
ExcelのNA関数を実務で使う4つのシーン
ここからが本題です。NA関数が「実は便利」と気づける4つの実務シーンを紹介します。
シーン1|未入力データを「未入力」と明示する
入力テンプレートで、まだ入力されていないセルがあったとします。空白のまま *1.1 のような計算を続けると、結果が 0 になって紛らわしいですよね。
そんなときは、未入力なら #N/A を返すように IF と組み合わせます。
=IF(A2="", NA(), A2*1.1)
A2が空白なら #N/A、入力済みなら A2*1.1 が表示されます。#N/A が並んでいれば、未入力箇所が一目で分かりますよ。
「0と未入力を区別したい」シーンでよく使うパターンです。集計セルもエラーになるので、未入力のまま誤って集計してしまうミスも防げます。
シーン2|グラフでデータ抜けに線をつなぐ(プレースホルダー用途)
折れ線グラフを作るとき、データが歯抜けだと困った経験はありませんか?空白セルや0が入ると、グラフの見た目が崩れます。
NA関数を使うと、データ抜けの位置で線がつながる ようにできます。これは折れ線グラフ・面グラフのデータソースに #N/A が含まれると、Excelがそのセルをスキップして前後の点を直接結ぶためです。
| データの値 | グラフでの挙動 |
|---|---|
| 空白セル | プロットされず、線が途切れる |
| 0 | 0として線が落ちる(凹んで見える) |
| =NA() | スキップして前後の点を直接結ぶ |
たとえば月次売上で、まだ確定していない月のセルに =NA() を入れておくと、その月をまたいで前後の確定月が滑らかにつながります。
1月: 100
2月: 120
3月: =NA() ← 未確定月
4月: 150
このセル設定だと、グラフは1月→2月→4月と線がつながり、3月で凹みません。プレースホルダーとして使う、定番テクニックですよ。
シーン3|VLOOKUP・MATCHの結果を分岐させる前処理
VLOOKUP関数やMATCH関数は、検索値が見つからないと自動で #N/A を返します。NA関数は、これと同じ「該当なし」のシグナルを意図的に発生させたいときに使います。
たとえば、IF文で「特定の条件のときだけ検索を実行し、条件外なら未該当扱いにしたい」場合です。
=IF(B2="対象", VLOOKUP(A2, 商品マスタ, 2, FALSE), NA())
B2が「対象」のときだけVLOOKUPを実行し、それ以外は #N/A を返します。後続のISNA関数やIFNA関数で「該当なしのセル」をまとめて検出・処理できるので、条件分岐の前処理として便利です。
VLOOKUPが出す #N/A も、NA関数が出す #N/A も、ISNAやIFNAは同じ「#N/Aエラー」として扱います。ここが大事なポイントですよ。
シーン4|計算前提が満たされていない場合の警告表示
複雑な計算式で、特定の前提条件が満たされていないと結果が信頼できない場面があります。そんなときは、計算結果の代わりに #N/A を返して「計算不能」を明示します。
=IF(分母=0, NA(), 分子/分母)
分母がゼロの場合、#DIV/0! が出る代わりに #N/A を返します。#N/A を返しておけば、ISNA関数で「計算前提が崩れているセル」だけを後から一括処理できますよね。
#DIV/0! のような原因特定型エラーと違い、#N/A は「データが揃っていない」という意味合いを持つので、業務ロジックの分岐として使いやすい性質があります。
NA関数とIFNA・ISNA・IFERRORの違い(4関数比較表)
エラー処理に関する関数は複数あって混乱しがちですよね。役割で整理すると、それぞれの立ち位置がはっきりします。
役割で整理する4関数の立ち位置
エラー処理関数は、大きく4つの役割に分かれます。
NA関数は「エラーを作る側」、残り3つは「エラーを処理する側」と覚えるとシンプルです。
比較表
4関数の特性を一覧で整理します。
| 関数 | 役割 | 構文 | 主な使い場面 |
|---|---|---|---|
| NA | #N/Aを発生させる | =NA() | データ未入力フラグ、グラフのプレースホルダー、計算前提エラーの明示 |
| ISNA | #N/Aかどうか判定 | =ISNA(値) | TRUE/FALSEで条件分岐、未入力セルのカウント |
| IFNA | #N/Aを別の値に置換 | =IFNA(値, NAの場合の値) | VLOOKUPの#N/Aを空白や代替テキストに置換 |
| IFERROR | 全エラーを別の値に置換 | =IFERROR(値, エラーの場合の値) | あらゆるエラーを一括で非表示にしたい場合 |
IFNAとIFERRORは似ていますが、IFNAは#N/Aだけ、IFERRORは7種類すべてのエラー が対象です。「数式ミスは見逃したくないけど、#N/Aだけは隠したい」場合はIFNAが安全ですよ。詳しくはIF・IFS・IFERROR・IFNAの使い分けも合わせてどうぞ。
NA関数とIFNA・ISNAを組み合わせた実務パターン
NA関数の真価は、IFNAやISNAと組み合わせたときに発揮されます。3つの実務パターンを紹介します。
パターン1|NA() + IFNA で代替値を表示
NA関数で発生させた #N/A を、IFNA関数で読み手に分かる文言に置換するパターンです。
=IFNA(IF(A2="", NA(), A2*1.1), "未入力です")
A2が空白なら、内側のNA関数が #N/A を返し、それをIFNA関数が「未入力です」というメッセージに置き換えます。エラーのままだと冷たい印象ですが、メッセージにすれば操作者にやさしい表示になりますよね。
パターン2|NA() + ISNA で条件分岐
ISNA関数は「セルが #N/A かどうか」を TRUE/FALSE で返します。NA関数で発生させた #N/A を別セルで検知して、自動で次のアクションを起こせます。
A列: =IF(B2="", NA(), B2*1.1)
C列: =IF(ISNA(A2), "要確認", "OK")
A列が #N/A のとき、C列に「要確認」と表示されます。データ入力チェックリストとしても活用できる、便利な組み合わせです。
パターン3|VLOOKUPの#N/Aを任意のセルに伝播させる
VLOOKUPで「該当なし」だった場合に、別の関連セルにも #N/A を反映させたいケースがあります。これも NA関数とIFNAの合わせ技で解決できます。
B列: =VLOOKUP(A2, マスタ, 2, FALSE)
C列: =IF(ISNA(B2), NA(), B2*1.1)
B列のVLOOKUPで該当なしになると、C列にもNA関数で #N/A が伝播します。後続の合計や平均が誤った値で計算されるのを防げますよ。
ExcelのNA関数でよくあるエラーと対処法
NA関数はシンプルですが、ちょっとした書き間違いでエラーが出ることがあります。よくある3つのケースを押さえておきましょう。
構文ミス(NA と入力すると#NAME?エラー)
最も多いミスが、カッコを忘れて =NA だけ入力してしまうケースです。これだとExcelが関数として認識せず、#NAME? エラーが出ます。
=NA → #NAME?エラー
=NA() → #N/A(正しい)
NA関数は引数を取らない関数ですが、カッコ自体は省略できません。「カッコまで含めて関数名」と覚えておくと忘れにくいですよ。
#N/A以外のエラーを返したい場合
NA関数が返せるのは #N/A だけです。#VALUE! や #DIV/0! を意図的に返したい場合、それぞれ専用の関数や数式で発生させます。
| 出したいエラー | 発生方法 |
|---|---|
| #N/A | =NA() |
| #DIV/0! | =1/0 |
| #VALUE! | 文字列を数値計算(例: =”a”+1) |
| #REF! | 削除済みセルの参照 |
ただし、業務で意図的にエラーを発生させる用途なら #N/A がもっとも汎用性が高いです。NA関数で十分なケースが大半ですよ。
グラフで線がつながらない場合のチェック
NA関数で #N/A を入れたのに、折れ線グラフが途切れたままになる場合は、次の3点をチェックしてください。
- グラフのデータソースが
#N/Aを含むセルを正しく参照しているか - 「空白セル」のオプションが「データ要素を線で結ぶ」になっているか
- 折れ線グラフ・面グラフ以外(棒グラフなど)を使っていないか
特に2つ目はよく見落とすポイントです。グラフを右クリック→「データの選択」→「非表示および空白のセル」から設定できますよ。
まとめ|NA関数で「エラーを味方にする」数式設計
ExcelのNA関数は、=NA() と書くだけで #N/A エラーを発生させるシンプルな関数です。「エラーを出す関数なんて何に使うの?」と思いがちですが、4つの実務シーンで活躍する隠れた便利関数なんですよね。
今回紹介した4つの活用シーンを振り返りましょう。
- シーン1: 未入力データを
#N/Aで明示してミスを防ぐ - シーン2: グラフで未確定データの位置をスキップして線をつなぐ
- シーン3: VLOOKUP・MATCHと組み合わせて「該当なし」を意図的に発生
- シーン4: 計算前提が崩れているセルを後で一括検出できるようマーキング
そして、IFNA・ISNA・IFERRORと組み合わせれば、エラー処理の幅が一気に広がります。「エラーを発生させる→検知する→置換する」の流れを設計できると、堅牢な数式が書けるようになりますよ。
エラー処理関連の関数についてもっと知りたい方は、関連記事もぜひチェックしてみてください。
- ExcelのIFNA関数の使い方|#N/Aだけを処理
- ExcelのISNA関数の使い方|#N/Aエラーだけをピンポイント判定
- ExcelのIFERROR関数の使い方|エラー値を別の値に置き換える
- ExcelのVLOOKUP関数の使い方|表から検索して値を取り出す
- Excel IF・IFS・IFERROR・IFNAの使い分け完全ガイド
NA関数を使いこなして、「エラーを味方にする」数式設計をぜひ試してみてくださいね。
