広告
- #N/A エラーの原因を知りたい
- データの誤りを見つけて修正したい
- エラーを非表示にして、見た目をスッキリしたい
VLOOKUPで#N/Aエラーが出ると、仕事の手が止まりますよね。やみくもに調べても時間がかかるばかりです。
この記事では、VLOOKUPの#N/Aエラーについて、原因と解決方法、そして非表示&他の文字に置き換える方法を解説します。
お急ぎの方は、下記から該当箇所へ移動してください。
#N/Aエラーを今すぐ解決して、目の前の仕事を先へと進めましょう。
本文中の解説図はクリックで拡大表示します。別途ページでPDFファイルもダウンロード可能です。
≫ PDFファイル参照ページはこちら
VLOOKUP を基礎から応用まで完璧にマスターしたい方は、次の記事もあわせて参照ください。
≫ VLOOKUPの使い方|基礎から完璧マスター&便利技20選を超図解!
マイクロソフト公式サイトの解説を参照したい方はこちら
≫ Microsoft|Officeのサポート~エラー値 #N/A を修正する方法
1. VLOOKUPの#N/Aエラーの原因と解決方法
「#N/A」は「Not Available(ノット アベイラブル)」と読みます。
VLOOKUPの#N/Aエラーは、検索値(※)を見つけられない場合に発生します。
(※)検索値とは、データを探す手掛かりとなる値
解決するには発生原因を整理した上で、1つずつ潰していくのが結局一番早道です。
発生原因は主に3つあります。それぞれよくあるパターンを解説していきます。
1-1. 検索値が存在しない
探している検索値が検索範囲(※)に存在しなければ、いくら探しても見つからず#N/Aエラーとなります。
(※)検索範囲とは、探したいデータが入っている表
データのメンテナンスの最中に、うっかり消してしまったかもしれません。データの作成途中で未入力段階でもエラーになります。
#N/Aエラーが出ている検索値が、検索範囲に本当に存在するかをまず調べましょう。
検索値を「検索と置換(CTRL+F)」で探すときは、検索窓にコピー&貼り付けして検索しましょう。直接入力すると、そこで入力ミスをしたら見つけられないからです。
1-2. 検索値の文字列が間違っている
検索値が存在するにも関わらず#N/Aエラーになる場合、文字列が完全には一致していないことが考えられます。
VLOOKUPは、厳密な条件のもとに検索値を探します。綴りの間違いや全角半角の違い、書式設定が異なる場合も、すべて別物です。
次のようなケースを疑って、調べてください。
- 綴りが間違っている
- 書式が異なっている
- 空白が紛れ込んでいる
(1) 綴りが間違っている
綴りが間違っていると不一致でエラーになります。英大文字の「O(オー)」と数字の「0(ゼロ)」や、英小文字の「l(エル)」と数字の「1(イチ)」などは特に間違いやすいです。
見分けにくい場合は、Wordに貼り付けて文字サイズを大きくし、フォントを明朝体などに変更してみましょう。
見分けがつきにくい文字について具体例を知りたい方はこちら
≫ 【見分けがつきにくい文字】
(2) セルの書式設定が異なっている
VLOOKUPはセルの書式設定(※下記「参考」参照)が異なると別物として扱います。特に数字の場合、書式設定が「数値」と「文字列」で異なれば、不一致になります。目視では気付きにくいので、セルの書式設定を開いて確認しましょう。
セルの書式設定
セルの書式設定とは、入力したデータの表示形式や文字の種類、大きさ、色などを変更したり、罫線、塗りつぶし、入力保護などを設定できるツールです。設定画面はセルを右クリックしてプルダウンメニューから呼び出せます。
書式設定を変更する件数が多く手作業では追いつかないようであれば、「区切り位置」という機能で一括変更できます。詳しくはこちら
≫ 書式設定を「区切り位置」で一括変更
(3) 空白が紛れ込んでいる
文字に間違いが無くても、空白が紛れ込んでいると不一致になります。目視だけでは気付きにくいので注意が必要です。
他からデータを流用すると、意図せず空白が含まれていることがあります。他にも「センタリング」の機能を知らない人が、上下のセルと縦位置を揃えるために空白を挿入しているケースもあります。他人の作成したデータはうのみにせず、特に注意しましょう。
紛れ込んでいる空白を一括削除する方法
紛れ込んでいる空白を一括削除するなら、「検索と置換(CTRL+F)」を使うと便利です。「検索する文字列」の欄に空白を入れ、置換後の文字列には何も入れずに、「すべて置換」をクリックします。全角と半角の両方消すことを忘れないでください。
空白の有無について詳しくはこちら
≫ VLOOKUPは空白の有無も区別する
1-3. 探し方が間違っている
探し方が間違っていると、検索値が存在しても見つけられず#N/Aエラーになります。VLOOKUPは詳細な条件設定が必要なため、正しく記述できているか確認が必要です。
探し方が間違っている場合の具体例
- 検索範囲の一番左の列に検索値がない
- 検索範囲における検索値が縦に並んでいない
- 検索方法(FALSE/TRUE)の選択を間違っている
- TRUE(近似値検索)で検索範囲の最小値よりも小さい値を検索
- TRUE(近似値検索)で検索範囲の検索値が昇順に並んでいない
- 数式を移動/コピーしたときに検索範囲の指定がずれてしまった
(1) 検索範囲の一番左の列に検索値がない
VLOOKUPは検索範囲の一番左の列を検索し、その右側にあるデータを返します。検索値が一番左にない場合は検索できません。検索値が一番左で、返したいデータがその右側に並ぶように、検索範囲の表を作成しましょう。
(2) 検索範囲における検索値が縦に並んでいない
VLOOKUPは縦方向にしか検索できません。検索値が横に並んでいる場合は、縦になるよう検索範囲を作り直す必要があります。
(3) 検索方法(FALSE/TRUE)の選択を間違っている
検索方法(FALSE/TRUE)の選択を間違っている場合、エラーになる可能性があります。
テストの点数を判定する数式の場合、TRUE(近似値検索)であれば近い値を見つけて返すのためエラーにはなりにくいです。FALSE(完全一致検索)にすると、判定表に載っている点数以外はすべてエラーになります。
VLOOKUPは、検索方法でFALSE(完全一致検索)とTRUE(近似値検索)を選ぶことができます。それぞれ長所短所がありますので、詳しくは別記事を参照ください。
≫ VLOOKUPの使い方|3-4. 検索方法を指定
(4) TRUE(近似値検索)で検索範囲の最小値よりも小さい値を検索
TRUE(近似値)検索であっても、検索範囲の最小の検索値より小さい値を検索しようとするとエラーになります。テストの判定表で検索値の最小値が40点の場合、35点はエラーになります。検索値の最小値は考えられる一番小さい値に設定しましょう。
(5) TRUE(近似値検索)で検索範囲の検索値が昇順に並んでいない
TRUE(近似値検索)で検索範囲の検索値が昇順に並んでいない場合、エラーになる可能性があります。エラーが出ていない場合でも、思い通りの結果になっていないケースもあります。必ず検索値を昇順に並べましょう。
FALSE(完全一致検索)であっても、検索範囲の検索値は昇順に並べるようにしましょう。必ずしも不具合が出るわけではありませんが、昇順に並べておくと重複に気付きやすく、メンテナンスもしやすいからです。
(6) 数式を移動/コピーしたときに検索範囲の指定がずれてしまった
数式を移動/コピーしたときに検索範囲の指定がずれてしまい、エラーになることがあります。移動/コピーの際は検索結果を確認しながら進めましょう。
数式を必ずコピーするのであれば、範囲指定がずれないよう「$」をつけることをおすすめします。「$」の使い方について、詳しくはこちら
≫ VLOOKUPの使い方|(推奨)範囲指定は「絶対参照(「$」をつける)」にしたほうが良い
2. VLOOKUPの#N/Aエラーを非表示や他文字へに置き換える方法
この章では、VLOOKUPで#N/Aエラーを非表示にしたり、他文字へ置き換えたりする方法を解説します。
エラーの発生が想定内であれば、「#N/A」を表示させない方がすっきりします。また他の文字へ置き換えると状況を理解しやすくなることでしょう。表の輪郭だけ先に作ってデータは後から入力することなどは、よくあるケースです。
方法を2つご紹介しますので、用途に応じて選択してください。
2-1. 「IFERROR」と「IF+ISERROR」の使い分け方
VLOOKUPで#N/Aエラーを非表示にする方法には、「IFERROR」または「IF + ISERROR」と組み合わせる方法があります。それぞれの特徴と注意点は次のとおりです。
関数 | 特徴 | 注意点 | 詳細へ |
IFERROR (イフエラー) | エラーの場合のみ特定の処理を実行する (正常の場合はVLOOKUPを実行するのみ) | EXCEL2007以降でしか使えない | 2-2.へ |
IF+ISERROR (イズエラー) | エラー「あり」と「なし」でそれぞれ特定の処理を実行できる | VLOOKUPを2回記述するため式が長くなる | 2-3.へ |
#N/Aエラーを非表示にするだけであれば、IFERRORがシンプルでおすすめです。ただし、エクセルのバージョンが2007以降でしか使えません。
2003以前のバージョンをお使いの場合は、IF+ISERRORを選択してください。
IFERRORでエラーを非表示にする ≫ 2-2.
IF+ISERRORでエラーを非表示にする ≫ 2-3.
マイクロソフト公式サイトの解説を参照したい方はこちら
≫ Microsoft|Officeのサポート~IFERROR関数
≫ Microsoft|Officeのサポート~IF関数
≫ Microsoft|Officeのサポート~IS(ISERROR)関数
2-2. IFERRORを使う場合
IFERRORは、エラーを判定し、エラーの場合のみ指定の値を返す関数です。VLOOKUPと組み合わせてエラーを非表示する数式が下記です。
=IFERROR(VLOOKUP(D2,A:B,2,FALSE),””)
エラーの場合は「””」(※)を返すので、セルには何も表示されません。
(※)「””」は、エクセルでは何も入れない空っぽを意味します。
VLOOKUPが正常であればそのまま検索結果が表示されます。
特定の文字列を表示させたければ、「””」を「”作成中”」などに置き換えればOKです。数式を組み込むこともできます。
ただし、「1」などの数字を表示させたい場合は、「””」の有無に注意してください。
数式内での記述 | 計算結果 |
---|---|
”1” | 文字列の「1」として扱われる 文字列のため計算できない |
1 | 数値の「1」として扱われる AVERAGEやSUMなどの演算関数で計算可能 |
数式を作成する際は先にVLOOKUPの式を完成させ、問題無いことを確認してからIFERRORを追加しましょう。同時に作ると、うまく動作しない場合にどこに間違いがあるか切り分けが難しくなるからです。
IFERRORと組み合わせてエラーを非表示にする方法について詳しく知りたい方はこちら
≫【VLOOKUP】IFERRORでエラーを非表示&複数シートを検索する裏技
2-3. IF+ISERRORを使う場合
IFは条件に合致するか否かに応じて処理を分岐させる関数です。ISERRORはエラーを判定する関数です。ISERRORでエラー判定し、IFで条件分岐して、エラーを非表示にしています。数式は次のとおりです。
=IF(ISERROR(VLOOKUP(D2,A:B,2,FALSE),””,VLOOKUP(D2,A:B,2,FALSE))
数式の前半にあるVLOOKUPをエラー判定し、エラーなら「””」を、正常なら後半のVLOOKUPを実行します。
特定の文字列を表示させたければ、「””」を「”作成中”」などに置き換えればOKです。数式を組み込むこともできます。
ISERRORは、エラーの場合が「TRUE(真)」となることに注意しましょう。
感覚的には「TRUE(真)」の方に正常なイメージがありますが、実際には下記です。
エラー発生 = TRUE(真)
正常 = FALSE(偽)
IFの数式内での「””」の位置関係を間違えやすいので、気をつけてください。
IF + ISERRORと組み合わせてエラーを非表示にする方法について詳しく知りたい方はこちら
≫【VLOOKUP】IF+ISERRORでエラーを非表示にする方法(エクセル2003以前でも可)
まとめ(#N/Aエラーは原因別にアプローチ|想定内なら非表示もOK)
#N/Aエラーは発生原因を整理して、1つずつ潰していくのが結局一番早道です。主に次の3つの原因からアプローチしましょう。
#N/Aエラーの原因別アプローチ
- 検索値が存在するか
- 検索値の文字列は間違っていないか
- 検索値の探し方は間違っていないか
検索値の探し方については、さらに次のポイントにも着眼しましょう。
検索値の探し方のポイント
- 検索範囲の一番左の列に検索値が縦に並んでいるか
- 数式をコピーしたときに検索範囲の指定がずれていないか
- TRUE検索の場合に検索範囲にある検索値の列が昇順に並んでいるか
- TRUE検索の場合で検索値の最小値よりも小さい値を検索しようとしていないか
- 検索方法(FALSEとTRUE)の指定を間違っていないか
#N/Aエラーになることが想定内であれば、次の方法で非表示にすることができます。
#N/Aエラーを非表示にするには
- 「IFERROR」と組み合わせる方法
- 「IF + ISERROR」と組み合わせる方法
いずれにせよ一刻も早くエラーを解消し、早く仕事を終わらせてしまいましょう。
本文中の解説図はクリックで拡大表示します。別途ページでPDFファイルもダウンロード可能です。
≫ PDFファイル参照ページはこちら
VLOOKUPを基礎から応用まで完璧にマスターしたい方は、次の記事も参照ください。
≫ VLOOKUPの使い方|基礎から応用まで完璧マスター&便利技20選を超図解!
エクセルでお困りのことがありましたら、『エクセルの窓口』で検索してください。
ブックマークやお気に入りに登録していただけたら幸いです。