Excel

【対策】ExcelのVLOOKUP関数で#N/Aエラーが出る原因と解決手順

Excelの実務で最も頻繁に使われる関数のひとつが「VLOOKUP(ブイルックアップ)関数」です。しかし、数式を入力した際にセルに「#N/A」というエラー値が表示され、シート全体の計算が止まってしまったり、見栄えが悪くなったりして困った経験は誰にでもあるのではないでしょうか。#N/Aエラーは「Not Available(値が存在しない)」の略で、基本的には「検索した値がマスタの中に存在しない」ことを示しています。

この#N/Aエラーに対処するには、エラー発生時にセルを空白や「該当なし」といった見やすい表記に変える「IFNA関数を用いた回避策」と、エラーが発生している根本的な原因(データ型の不一致や余分なスペースなど)を修正する「データクレンジングによる根本対策」の2つのアプローチがあります。今回は、画面に沿って今すぐできるエラー非表示手順から、データが一致しているはずなのにエラーになる場合のトラブルシューティングまで徹底図解します。VLOOKUPエラーの解決スキルを身につけて、手戻り作業を撲滅し、定時退勤を実現しましょう!

この記事の重要ポイント(Part 1)

  • #N/Aエラーはバグではなく、「指定した検索キーがマスタの一番左の列に見つからない」という正常な警告であること
  • 基本編:IFNA関数またはIFERROR関数を組み合わせることで、エラー値を「該当なし」や空白("")にスマートに置換できること
  • 応用編:データ上の見た目が一致していても、データ型(文字列と数値)の違いや、前後の余計な「スペース」が原因で#N/Aになる場合の根本対処手順があること
  • 安全性向上のため、エラー回避には何でも隠してしまうIFERRORではなく、#N/Aだけを狙い撃ちする「IFNA関数」を使うのが現代のベストプラクティスであること

VLOOKUPの#N/Aエラーを攻略する2つのアプローチ

【対策】ExcelのVLOOKUP関数で#N/Aエラーが出る原因と解決手順に関する全体的な概念を解説するイメージ画像

エラーが発生した際、単にエラー表示を隠したいだけなのか、あるいはデータの不整合を直したいのかによって、対処方法をスマートに使い分けるのがプロの設計です。

「エラーのスマートな非表示」と「データの根本修正」の比較

第1の基本アプローチは、「エラー判定関数で数式を包む」手法です。Excelの IFNA(イフ・ノット・アベイラブル) 関数を利用し、=IFNA(VLOOKUP(...), "該当なし") のように記述します。検索値がマスタに存在しない場合にエラーを別の文字列や 0 に置き換え、表全体の集計計算(SUM関数など)をスムーズに通すことができます。

第2の応用アプローチは、「マスタデータや検索キーの不整合を直す」手法です。文字の前後に見えないスペースが入っていたり、数字が「文字列」として認識されていたりするズレを解消します。この根本修正を行うことで、システムからエクスポートしたデータの不整合自体がクリアになり、正確なマスタ連携が可能になります。

以下に、VLOOKUPの#N/Aエラー対策における2つのアプローチの特徴を整理しました。

アプローチ 主な処理内容 数式の書き換え データ自体の修正 実務での推奨シーン
IFNA/IFERRORによる回避 エラー表示を「該当なし」や空白に変える 必要(VLOOKUPを包む) 不要 マスタに存在しない顧客や製品が含まれることが正常な仕様の表
データ型の不一致や空白の修正 文字列・数値の変換や、TRIM関数によるスペース削除 不要(または簡易的な型変換数式) 必要(クレンジング実施) 絶対にマスタにデータがあるはずなのに、なぜか#N/Aエラーが出る場合

まずは、最も簡単で確実なIFNA関数を使ったエラー回避の手順から見ていきましょう!

定時退勤のためのTips:エラーを「放置」しないことが最速の仕事を生む

シート上に「#N/A」が点在している状態で放置すると、それらを合計するSUM関数などもすべて引きずられて「#N/A」エラーになり、集計が崩れてしまいます。その都度エラーを目視でチェックし、手計算で補正するような無駄な作業は今すぐやめましょう。数式でスマートにエラー制御をしておくことこそが、定時退勤の基本スキルです。

【基本編】IFNA関数を使って#N/Aエラーを消し「該当なし」と表示する手順

検索値がマスタに存在しない時に「#N/A」を非表示にし、綺麗でわかりやすい表示に変える手順を解説します。

【対策】ExcelのVLOOKUP関数で#N/Aエラーが出る原因と解決手順の基本的な手順や設定方法を視覚的に解説するイメージ画像

ステップ1:IFNA関数の基本構文を理解する

Excelには、VLOOKUPの#N/Aエラーにピンポイントで対処するための「IFNA(イフ・エヌエー)関数」が用意されています。

=IFNA(値, エラーの場合の値)

第1引数の「値」にVLOOKUPの数式そのものを指定し、第2引数に「エラーの代わりに表示したい文字」を入力します。

ステップ2:「該当なし」と表示する数式を入力する

例えば、A2セルの値をマスタ範囲(Master!$A$2:$B$100)から検索し、値が見つからない場合は「該当なし」と表示したい場合は、以下のように記述します。

=IFNA(VLOOKUP(A2, Master!$A$2:$B$100, 2, FALSE), "該当なし")

これで、エラーの代わりに「該当なし」という日本語がセルに表示されるようになり、一目でデータがないことがわかるようになります。

ステップ3:エラー時に「空白(非表示)」または「0」にする方法

表をスッキリ見せるために、エラー時は何も表示したくない(空白にしたい)という場合は、第2引数にダブルクォーテーションを2つ並べた ""(空文字) を指定します。

=IFNA(VLOOKUP(A2, Master!$A$2:$B$100, 2, FALSE), "")

また、売上表などの集計計算でエラーの代わりに「数値の0」を返したい場合は、以下のように 0 をそのまま記述します(※ダブルクォーテーションで囲むと文字列になって計算できなくなるので注意してください)。

=IFNA(VLOOKUP(A2, Master!$A$2:$B$100, 2, FALSE), 0)
IFNAとIFERRORのどちらを使うべき?

  • IFNA関数(推奨):#N/A エラーのみを検出し、#REF!(範囲外エラー)や #VALUE!(引数の型エラー)など他の致命的なミスはそのままエラー表示して教えてくれます。スペルミスに気づきやすく安全なため、通常はIFNAを使いましょう。
  • IFERROR関数:あらゆるエラーをすべて非表示にします。数式自体の書き間違い(VLOOKUPの綴り間違いなど)すらも隠してしまうため、原因不明 of バグを生み出しやすく、設計上は慎重に使う必要があります。
古いExcel環境での動作確認!

IFNA関数は Excel 2013 以降でサポートされています。もし社内に Excel 2010 などの非常に古い環境を使用しているメンバーがいるファイルを共有する場合は、IFNAの代わりに以下の IFERROR を使用するか、またはクラシックな IFISNA の組み合わせで記述するようにしてください。

=IF(ISNA(VLOOKUP(A2, Master!$A$2:$B$100, 2, FALSE)), "該当なし", VLOOKUP(A2, Master!$A$2:$B$100, 2, FALSE))

【応用編】#N/Aエラーが出る4つの原因と根本的な解決手順

「マスタデータに対象のキーワードや商品名が確実に存在するのに、なぜか#N/Aエラーが表示される」という場合にチェックすべき、4つのチェック項目と根本対策を解説します。

【対策】ExcelのVLOOKUP関数で#N/Aエラーが出る原因と解決手順の高度なカスタマイズや応用的な活用手順を示すイメージ画像

原因1:第4引数(検索方法)に「FALSE」または「0」を指定していない

VLOOKUP関数で最も多いミスが、第4引数を省略するか、または TRUE(近似一致)を指定しているケースです。ここが省略されると、Excelは「検索値に近い値」を探してしまい、マスタのデータが昇順に並んでいないと正しい値を取得できず#N/Aエラーになります。

■ 解決方法:

完全一致でデータを検索するために、数式の最後(第4引数)には必ず FALSE(または 0)を指定します。

=VLOOKUP(A2, Master!$A$2:$B$100, 2, FALSE)

原因2:検索値とマスタの「データ型(文字列と数値)」がズレている

例えば、検索値が入っているセル(A2)の「1001」は「数値」なのに、マスタ側のコード列(A列)の「1001」が「文字列」として入力されている場合、Excelはこれらを「全く異なるデータ」と認識するため、#N/Aエラーが返されます。

■ 解決方法:

数式内でデータ型を一時的に変換して検索させることで、即座にエラーを解消できます。

  • 検索キー(数値)を文字列に変換して検索する場合:検索キーに & ""(空文字を連結)を繋ぎます。
    =VLOOKUP(A2 & "", Master!$A$2:$B$100, 2, FALSE)
  • 検索キー(文字列)を数値に変換して検索する場合:検索キーを VALUE 関数で囲むか、* 1 を掛け算します。
    =VLOOKUP(VALUE(A2), Master!$A$2:$B$100, 2, FALSE)

原因3:セル内に見えない「スペース(空白)」が含まれている

マスタのデータや検索するセルの中に、半角や全角のスペース(例: 「東京 」や「 東京」)が混入していると、人間には同じ文字に見えてもExcelは別物と判断してエラーになります。システムからエクスポートしたデータで非常によくある原因です。

■ 解決方法:

スペースを取り除くために、TRIM(トリム)関数を数式に組み込みます。TRIM関数は、文字の前後にある余分なスペースを自動でカットします。

=VLOOKUP(TRIM(A2), Master!$A$2:$B$100, 2, FALSE)

※マスタデータ側自体にスペースが入っている場合は、マスタ全体を選択して「検索と置換」(Ctrl + H)でスペースを一括削除するのが確実です。

原因4:マスタの「一番左端の列」以外の列を検索しようとしている

VLOOKUP関数は、「指定した検索範囲の一番左側の列から検索値を探す」という鉄のルールがあります。例えば、マスタのA列が商品名、B列が商品コード、C列が価格で、商品コードから商品名を検索したい場合、検索範囲をA〜C列に指定するとVLOOKUPは機能しません。

■ 解決方法:

検索範囲の開始位置を「商品コードの列(B列)」から始まるように B2:C100 などに修正するか、列のレイアウトに関係なく検索できる XLOOKUP関数(または INDEX関数と MATCH関数の組み合わせ)を使用するように設計を刷新します。

根本修正のメリット

  • 見た目だけの修正ではなくデータそのものの品質が上がるため、その後の並び替えやピボット集計が正確になること
  • IFNAなどでエラーを隠蔽しないため、「本当に登録されていない新規コード」などの異常データにすぐ気付けること
定時退勤のためのTips:「見た目は同じなのに...」で迷ったら文字数を調べる

「AさんとBさんの入力した文字が全く同じに見えるのに、なぜかエラーが出る」という不毛なエラーチェックで残業するのはやめましょう。迷ったら、空きセルに =LEN(セル番地) を入力して「文字数」をカウントしてください。片方が5文字、もう片方が6文字であれば、末尾に見えないスペースが入っている証拠です。この切り分け手順を知っているだけで、デバッグ作業は一瞬で終わります。

Excel of VLOOKUP #N/Aエラーに関するFAQ

【対策】ExcelのVLOOKUP関数で#N/Aエラーが出る原因と解決手順に関するよくある質問(FAQ)と解決のヒントを示すイメージ画像

Excel of VLOOKUP関数で発生するエラーや不具合に関するよくある質問をQ&A形式で解説します。

Q1:IFNA関数とIFERROR関数のどちらを実務で使うべきですか?

安全性を考慮して、基本的には「IFNA関数」を使用することを強く推奨します。

IFNAは #N/A(値がない)エラーのみに反応するため、もしVLOOKUP関数の綴りを =VLOKUP(...) と間違えて #NAME? エラーが発生した時や、指定した参照列が削除されて #REF! エラーが発生した時には、それを非表示にせず正しくエラー表示してくれます。何でも非表示にするIFERRORを使うと、数式の間違いに気づけなくなる重大なデメリットがあります。

Q2:XLOOKUP関数を使えば#N/Aエラーは自動的に回避できますか?

はい、XLOOKUP関数には標準でエラー回避の引数(第4引数:見つからない場合)が組み込まれているため、IFNA関数を使う必要がなくなります。

具体的には、以下のように第4引数に表示したい文字列(例: "該当なし" や空白 "")を直接指定するだけでエラー制御が可能です。

=XLOOKUP(A2, Master!A:A, Master!B:B, "該当なし")

Excel 2021やMicrosoft 365の最新環境であれば、VLOOKUPの代わりにXLOOKUP関数を使用するのが、現代の実務のベストプラクティスです。

Q3:文字列と数値のデータ型のズレを一気に一元化して解消する簡単な方法はありますか?

はい、Excelの「区切り位置」機能を使うのが最も簡単な一括変換手順です。

文字列として入力されている数値データ(セルの左上に緑色の三角マークが出ているもの)の列全体を選択します。リボンの「データ」タブ > 「区切り位置」をクリックし、ウィザード画面が出たら何も設定を変えずにそのまま「完了」をクリックします。これだけで、列全体のテキストデータが一瞬で数値データに強制変換され、型違いによる#N/Aエラーが一気に解決します。

まとめ:VLOOKUPの#N/Aエラーを制御してプロフェッショナルなシートを作成!

今回は、ExcelのVLOOKUP関数でよく直面する「#N/A」エラーについて、IFNA関数を使った簡単な非表示・代替表示手順から、データ型や空白スペースによるトラブルを根本的に解決する手法まで解説しました。ポイントをおさらいしておきましょう。

VLOOKUP #N/Aエラー対策のまとめ

  • エラー制御:=IFNA(VLOOKUP(...), "該当なし") で安全に別表示にする
  • 関数の選択:数式間違いを隠さないために、IFERRORではなくIFNA関数を使う
  • 第4引数:完全一致で検索するために、必ず最後に FALSE または 0 を明記する
  • データ型:数値と文字列が混在しているとエラーになるため、& ""VALUE() で型を統一する
  • スペース混入:見た目が同じなのにエラーになる時は、TRIM() を挟んで余分なスペースを排除する
  • XLOOKUP:最新のExcelが使えるなら、標準でエラー回避引数を持つXLOOKUP関数に切り替える

エラーへの正しい対処手順を知っておくことで、「何時間も原因を探してデバッグを続ける」といった非効率な時間をすべてカットできます。実務で扱いやすいスマートな数式設計を行い、無駄な残業を撲滅して定時退社を勝ち取りましょう!

関連記事の紹介

Excelの「ExcelのVLOOKUP関数で#N/Aエラーが出る原因と解決手順」の操作と組み合わせて覚えておくと便利な、「Excelで表を印刷範囲に収めて1ページで印刷する手順」の具体的な設定手順や、「Excelで数式が表示されたまま計算されない原因と対処法」の活用テクニックを以下の関連記事にまとめました。Excelのデバッグやデータ整理の時間を大幅に削減して、今日もすっきり定時に退社しましょう!

  • この記事を書いた人

KYO

現役のシステムエンジニア。普段は企業向けの開発やツールの自動化を専門にしています。データの仕組みを知り尽くしたプロの視点から、スプレッドシートやExcel、Notion、AIツールの「本当に役立つ時短テクニック」を初心者向けに分かりやすく解説中!

-Excel