初級

【Excel】#N/Aを非表示にする方法


(約文字)

2009-05-18 2019-04-05

VLOOKUP系の参照を含む関数でよく発生する”#N/A”の原因と対策を解説。

エクセル大好きオヤジ”ひさ”です。 小型モバイルバッテリーで、PowerDelivery対応で、USB-Cから15V出力可能で、10,000mAh程度のモノを探していたら、ドンピシャの商品が、いつも買ってるAnkerさんから「PowerCore 10000 PD」が2019-3-22に発売されたけど、大人気のようで公式サイトやAmazonから「入手不可」だった今日この頃...

この記事では、Excelのセルに表示された#N/Aの意味、セルに#N/Aが表示される原因やその訳、#N/Aを非表示にして表示させない方法を解説します。

  • #N/Aって何?意味不明...大丈夫かなぁチョット心配...
  • #N/Aって何で表示されるの?原因は何だろう?
  • #N/Aを非表示にする方法は?消すにはどうすればいい?

このような#N/Aについて疑問やお悩みを持つエクセル初心者さん向けのやさしい解説です。

記事の下部には、このページの説明にも使用した#N/Aを理解するのに役立つのサンプルファイル(xlsx)がダウンロードできますので、ご自身のパソコンで内容を確認できます。

1.#N/Aの意味

#N/Aはエクセルからのエラー発生のお知らせ(メッセージ)で、英語の「Not Available」の略です。読み方は「エヌエー」「ノットアヴェイラボー」です。

意味は「使用できる値がない」で、その他「利用できない」「利用不可」「入手不能」「入手できない」「入手困難」「手に入らない」「得られない」「ここにはない」「見つからない」「未定」「欠損値」などの意味を持っています。

一般的には#が付かないN/Aと表記されることが多く、一部のプログラミング言語では/も付かないNAと表記されています。その他、無回答の意味を持つNo Answer、廃番の意味を持つNo Longer Availableを略してN/Aと表記することもあります。

余談ですが、Excelには空白セルを計算の対象として使用してしまう失敗を予防するために、#N/Aを返すNA関数があります。

2.#N/Aが表示される原因

エクセルで#N/Aが表示される原因は「データが存在しない」とか「一時的にデータが無い」場合です。計算式(数式や関数)が指定されエラーが発生しているセルに#N/Aが表示されます。

#N/Aをよく見かけるのがVLOOKUP関数。これは以下の様に引数を4つも指定する必要があり、エクセルの関数に不慣れな方がエラーを発生させてしまします。

VLOOKUP(検索値, 範囲, 列番号, 検索方法)

この引数1:検索値と、引数2:範囲が参照するセルに必要なデータが無い場合に#N/Aが表示されます。

それぞれの引数でエラーが発生してしまう原因と、エラーを非表示にする対策方法を以下で解説します。

2-1.(検索対象の)範囲に検索値に該当する値が無い

(検索対象の)範囲に検索値に該当する値が無い

上図の左の表「注文リスト」のセルB7には、以下の計算式が入力されています。

=VLOOKUP($A7,$G$3:$I$10,2,FALSE)

この式から絶対参照の記号”$”を取ると、以下の数式になります。

=VLOOKUP(A7,G3:I10,2,FALSE)

確認のため整理しますが、VLOOKUP関数の引数はそれぞれ以下の意味を持ちます。

概要指定した内容詳細の解説
引数1検索値A7注文リストの”コードが入力されているセルの文字”を検索ワードにする。
引数2範囲G3:I10商品マスタの”データが入力されたセル”を検索範囲にする。
引数3列番号2商品マスタの検索範囲の”左から2列目(商品名)”を参照する。
引数4検索方法FALSE検索値(コード)が”完全に一致した場合”、該当する列番号の値を返す。

セルB7にエラー#N/Aが表示される原因は VLOOKUP関数の引数1:検索値の対象セルA7に入力された値「ID009」が、引数2:(検索対象の)範囲である”商品マスタ”の一番左の列(この場合セルG3~G10)に「ID009」が存在しないのが原因で 「使用できる値がない」という意味の#N/Aが表示されます。

2-2.VLOOKUP関数の引数2:検索値に何も入力されていない

VLOOKUP関数の引数2:検索値に何も入力されていない

上図の左の表「注文リスト」のセルB8には、以下の計算式が入力されています。

=VLOOKUP($A8,$G$3:$I$10,2,FALSE)

この式から絶対参照の記号”$”を取ると、以下の数式になります。

=VLOOKUP(A8,G3:I10,2,FALSE)

確認のため整理しますが、VLOOKUP関数の引数はそれぞれ以下の意味を持ちます。

概要指定した内容詳細の解説
引数1検索値A8注文リストの”コードが入力されているセルの文字”を検索ワードにする。
引数2範囲G3:I10商品マスタの”データが入力されたセル”を検索範囲にする。
引数3列番号2商品マスタの検索範囲の”左から2列目(商品名)”を参照する。
引数4検索方法FALSE検索値(コード)が”完全に一致した場合”、該当する列番号の値を返す。

セルB8にエラー#N/Aが表示される原因は VLOOKUP関数の引数1:検索値の対象セルA8に何も入力されいないのが原因で 「使用できる値がない」という意味でエラー#N/Aが表示されます。

3.#N/Aを非表示にする方法

3-1.引数1:検索値に該当するデータが範囲にない場合

解決方法①

#N/Aエラーの原因が検索値にある場合の解決方法

上図の右の表「商品マスタ」の最下段にID009を追加することで、VLOOKUP関数の引数2:(検索対象の)範囲に該当する値が存在することになるので、#N/Aエラーを非表示に出来ます。

但し、注意点としてVLOOKUP関数の引数2:範囲の指定が3行目~10行目までと足りないので、11行目を含ませるために以下の様に変更する必要があります。

=VLOOKUP($A7,$G$3:$I$11,2,FALSE)
※全てのVLOOKUP関数の引数2「$I$10」→「$I$11」への変更が必要。

解決方法②

#N/Aエラーの原因が検索値にある場合の解決方法

左側の表「注文リスト」のコードを「商品マスタ」に存在する内容に修正することで、検索対象の範囲に該当のコードが存在するので、#N/Aエラーを非表示に出来ます。

具体的には何も該当する商品がないコードID009を

該当する商品があるコード(例えば”もも”の)ID008に修正(上図の様に修正)。

3-2.”検索値”に該当データが存在しない場合

解決方法③

ここで解説するエラー回避の方法はとても汎用的な方法なのでぜひ覚えたいテクニックです。 #N/A以外のエラーでも使えますし、バージョンを気にせず古いエクセルから新しいエクセルまで使える方法です。

その方法ですが”場合分け”を使います。

場合分けとは「Aの場合」と「Bの場合」でそれぞれ処理内容を変える事です。例えばこんなイメージで処理を行います。

  • ”→”が表示された場合は、右へ進む
  • ”←”が表示された場合は、左へ進む

このような感じです。エクセルで場合分けするには”IF関数”を使います。その基本的な考え方ですが、

メインの計算式が参照するセルに必要なデータが有【True】or無【False】をIF関数で確認し、

  • もしデータが有る【True】なら、メインの計算式をそのまま実行する。
  • もしデータが無い【False】なら、メインの計算式を計算せずに空白("")を表示させる。

このようにすればエクセルで発生する様々なエラーを回避できます。

ここからは実際の方法になりますが、例えばB8セルに指定する具体的な数式は以下です。

”検索値”に該当データが存在しない場合の解決方法1

=IF($A8="","",VLOOKUP($A8,$G$3:$I$10,2,FALSE))

これはIF関数で注文リストのコード欄(A8セル)にデータが有る【True】or無い【False】かを確認し、

  • もしデータが有る【True】なら、VLOOKUP関数を実行する。
  • もしデータが無い【False】なら、空白("")を表示させる。

このように対象のセルが空白でも#N/Aエラーを回避しています。

解決方法④

ここで解説するエラー回避の方法は汎用的ですが、古いエクセルだと使えない方法なので解決方法③よりも汎用性は劣りますが、場合分けの関数に指定する引数の指定が少ないので解りやすいというメリットがあります。

”検索値”に該当データが存在しない場合の解決方法2

具体的な方法は以下の計算式です。

=IFERROR(VLOOKUP($A$8,$G$3:I10,2,FALSE),"")

これはIF関数の代わりにIFERROR関数を使い、VLOOKUP関数が返す結果にエラーの有無を確認し、

  • もしエラーが無いなら、VLOOKUP関数を実行する。
  • もしエラーが有るなら、空白("")を表示する。

このようにしてエラー表示(#N/A)を回避しています。

4.サンプルファイル

「#N/Aエラーの解決前のシート」「#N/Aエラーの解決方法」を含むエクセルファイルです。ダウンロードしてご自身のパソコンで確認してください。

ダウンロード

5.ついでに覚えたいその他のエラー

エラーの種類 表示の原因 この記事
#N/A データが存在しない、一時的に無い
#VALUE! 関数の引数の間違え、正しくない
#NUM! 数値がNG(ダメ)
#REF! 参照セルが無効
#DIV/0! 除数が0、空
#NULL! 空で何もない
#NAME? 名前の指定が違う等

この記事は以上です。最後までご覧頂き、ありがとうございました。

VLOOKUP関数については”VLOOKUP関数の使い方”の記事で詳しく解説しています。

IF関数については”IF関数の使い方”の記事で詳しく解説しています。

コラム【001】 コラム

人工知能(AI)やロボットに仕事を奪われない為に

米マイクロソフト創業者”ビル・ゲイツ”氏はこう言っています。

  • 「AIが人の雇用の一部を奪おうとしているがそれを食い止める術はない」
  • 「一方、AIのおかげでより多くの自由時間が手に入る」

又、米ブルッキングス研究所の調査に以下の結果があります。

  • AIやRobotからあなたが仕事を奪われない為には「”Excel”や”Word”などのデジタルスキルの向上」が答え。

これを読んだあなたは、これからの人生、どう行動しますか?