VLOOKUPエラーの原因と直し方|#N/A・結果が0・コピーでズレる対処法

スポンサーリンク
スポンサーリンク

「データは確かにあるのに#N/Aが消えない」——

 

VLOOKUPのエラーで、そんな経験はありませんか?

 

フリーランスとしてExcel作業を請け負う筆者も、クライアントから受け取ったファイルでVLOOKUPの#N/Aに何度も悩まされてきました。

 

VLOOKUPエラーの原因は「文字列と数値の型不一致」か「余分なスペースの混入」であることがほとんどです。

 

ただし結果が0になるケースやコピーでズレる症状もあるため、まずは自分の画面に出ている症状を特定しましょう。

 

この記事ではVLOOKUPエラーを症状別に整理しました。該当する見出しから直接読み進めてみてください。

スポンサーリンク

VLOOKUPエラーの主な原因と症状一覧

同じ「VLOOKUPがうまくいかない」でも、表示されるエラーや症状によって対処法はまったく異なります。まずは下の表で自分のケースを確認しましょう。

 

症状 主な原因 必要な対処
#N/Aエラー(データはある) 文字列と数値の型不一致・スペース混入 型の強制変換・TRIM関数で整形
結果が0になる 参照先のセルが空欄(空白)になっている IF関数で空白制御
数式がそのまま表示される 入力したセルの書式が「文字列」になっている 表示形式を標準に戻してF2→Enter
コピーすると結果がズレる 絶対参照($)の書き忘れ F4キーで$を付与
#REF!エラー 列番号が範囲の列数を超えている 列番号の修正
近い値が返ってくる 第4引数がTRUEまたは省略 FALSEを明記
数式が更新されない 計算方法が「手動」になっている 計算方法を「自動」に変更

#N/Aエラーの原因 — 型不一致とスペース混入

VLOOKUPエラーで最も多いのが#N/Aです。「絶対に一致するデータがあるのに」という場合、検索キーと参照先でデータの「型」が合っていない可能性が高いでしょう。

 

たとえば検索キーが数値の「1」で、参照先が文字列の「001」だと、Excelは別物として扱います。

 

もうひとつの盲点がスペースの混入です。Webやシステムからコピーしたデータには目に見えないスペースが紛れ込みやすく、これが#N/Aの原因になります。

結果が0になる・数式がそのまま表示される原因

検索自体は成功しているのにセルに「0」が表示されるケースは、参照先のセルが空欄(空白)であることが原因です。Excelの仕様上、VLOOKUPは空白セルを引っ張ってくると自動的に「0」に変換してしまいます。

 

また、計算結果ではなく「=VLOOKUP(…)」という数式の文字列がそのままセルに表示されてしまう場合は、入力したセルの表示形式が「文字列」になっていることが原因です。「標準」に戻して入力し直す必要があります。

スポンサーリンク

VLOOKUPの#N/Aが消えない時の解決手順

VLOOKUPで#N/Aエラーが出ている場合、以下の手順を上から順に試してみてください。ほとんどのケースは最初の2ステップで解決できるはずです。

手順①:文字列と数値の型を統一する

VLOOKUPの#N/A — 型不一致の判別と解消

⚠️ 文字列
“001”
左揃え・緑の三角マーク
数値
1
右揃え
VALUE関数で数値に統一 → =VLOOKUP(VALUE(A2), $B$2:$C$100, 2, FALSE)
  1. 問題のある列を選択する
  2. セルの左上に表示される「!」マークをクリック
  3. 「数値に変換する」を選ぶ
  4. 数式が正しく反映されるか確認する(※自動で再計算されます)

 

「!」マークが表示されない場合は、列を選択 →「データ」タブ →「区切り位置」→ そのまま「完了」をクリックする方法でも一括で変換できます。

💡 プロの裏技:数式内で型を強制変換する
列全体の書式をいちいち変換するのが面倒な場合、VLOOKUPの数式内で「検索値」の型を無理やり合わせる強力な裏技があります。

① 検索値を「数値」にしたい場合(*1 をかける)
=VLOOKUP(A2*1, $B$2:$C$100, 2, FALSE)
② 検索値を「文字列」にしたい場合(&”” をつける)
=VLOOKUP(A2&"", $B$2:$C$100, 2, FALSE)

実務ではこの「*1」と「&""」の応急処置を知っているだけで、型不一致エラーの9割を瞬殺できます。

手順②:TRIM関数で余分なスペースを除去する

型を統一しても#N/Aが消えない場合、目に見えないスペースが原因かもしれません。数式の中で直接TRIMを組み込む方法が手軽です。

 

=VLOOKUP(TRIM(A2), $B$2:$C$100, 2, FALSE)

 

または検索範囲側のデータにもスペースが混入している場合は、参照列を=TRIM(B2)で整形した作業列を作り、その列をVLOOKUPの検索範囲にするのが確実でしょう。

手順③:第4引数をFALSEに設定する

VLOOKUPの第4引数を省略すると、デフォルトで近似一致(TRUE)になります。

 

商品コードや社員番号など完全一致で検索したい場合、この省略がエラーや誤った値の原因になりがちです。

 

第4引数 TRUE vs FALSE — 検索結果の違い

⚠️ TRUE(省略時)
近似一致 → 近い値を返す
並び順が違うと誤った値に
✅ FALSE(推奨)
完全一致 → 一致しなければ#N/A
データの整合性が保たれる

 

必ず=VLOOKUP(A2, $B$2:$C$100, 2, FALSE)のようにFALSEを明記しましょう。

スポンサーリンク

VLOOKUPの結果が0・コピーでズレる場合の対処法

#N/A以外にも、VLOOKUPには「結果が0になる」「コピーすると結果がおかしい」「#REF!が出る」といった症状があります。

 

それぞれの原因と直し方を確認していきましょう。

空白セルの参照をIF関数で制御する

VLOOKUPの参照先セルが空欄の場合、Excelは空白を「0」として返す仕様になっています。結果を0ではなく空白で表示したい場合は、IF関数で制御するのが定番です。

 

=IF(VLOOKUP(A2,$B$2:$C$100,2,FALSE)="","",VLOOKUP(A2,$B$2:$C$100,2,FALSE))

 

IFERRORと組み合わせるとエラー時の処理も可能になります。Excelでエラーを消す!IFERROR関数の使い方と具体例【2026】もあわせて確認してみてください。

絶対参照($)を付けてコピーのズレを防ぐ

「最初のセルは正しいのに、2行目以降が全部おかしい」という症状に心当たりはありませんか?

 

これはVLOOKUPの第2引数(検索範囲)に絶対参照が付いていないことが原因です。

 

VLOOKUPコピー時の参照ズレ — $ありvs$なし

❌ $なし
1行目: B2:C100
2行目: B3:C101 ← ズレる
3行目: B4:C102 ← ズレる
✅ $あり
1行目: $B$2:$C$100
2行目: $B$2:$C$100 ← 固定
3行目: $B$2:$C$100 ← 固定
💡 範囲を選択して F4 キーを押すと一発で「$」が付きます

 

列全体を参照する$B:$Cの書き方なら行番号のズレを気にせず済みます。

 

オートフィルの挙動がおかしい場合はExcelオートフィルで日付や数字が増えない・連番にならない原因と対処法も確認してみてください。

列番号が範囲を超えている(#REF!エラー)

#REF!エラーは、第3引数の列番号が検索範囲の列数を超えている場合に発生します。たとえば範囲が「A列〜B列(2列)」なのに列番号を「3」と指定しているケースです。

 

  • 列番号が範囲の列数以下になっているか確認する
  • 列を追加・削除した直後は特に列番号がズレやすいため、編集後に必ず動作確認してください

VLOOKUPが反映されない — 計算方法が「手動」になっている

数式は正しいのに結果が古いまま更新されない場合、Excelの計算方法が「手動」に切り替わっている可能性があります。

⚠️ 実務の罠:「手動計算の感染」に注意
「自分は手動計算になんて設定していない」と思うかもしれません。実はExcelには、その日一番最初に開いたファイルが『手動計算』で保存されていた場合、その後に開くすべてのファイルが『手動計算』に強制変更される(感染する)という極めて厄介な仕様があります。誰かからもらった重いファイルを開いた直後は特に注意してください。
  • 「数式」タブ →「計算方法の設定」→「自動」になっているか確認
  • すぐに再計算したい場合はF9キーを押す
スポンサーリンク

よくある質問(Q&A)|VLOOKUPエラーの実体験と検証結果

ここでは筆者が実際に遭遇したケースや、読者から寄せられる疑問をQ&A形式でまとめます。

Q. CSVからインポートしたデータでVLOOKUPの#N/Aが消えないのですが?
A. CSVデータにはTRIM関数では除去できない「改行コード」や「BOM」が紛れ込んでいることがあり、これが#N/Aの原因になります。私も以前、5,000行ほどの売上データを突合した際、見た目に問題がないのに大量のエラーが出て苦戦しましたが、原因はセル内に隠れていた改行コード(CHAR(10))でした。解決策として、=SUBSTITUTE(TRIM(A2),CHAR(10),"") を使って見えない改行を徹底的に排除してからVLOOKUPに渡してみてください。CSVを扱う実務では、この「見えない文字の掃除」をセットで行うのがエラー回避の鉄則です。

Q. VLOOKUPの代わりにXLOOKUPを使うべきですか?
A. Excel 2021以降やMicrosoft 365をお使いなら、迷わずXLOOKUPへの切り替えをお勧めします。XLOOKUPはデフォルトが「完全一致」のためVLOOKUPでありがちな第4引数の指定ミスが防げるほか、検索列が左端でなくても参照できる、エラー時の戻り値を関数内で指定できるといった大きなメリットがあります。私も月次レポートの数式をXLOOKUPに置き換えたところ、IFERRORのネストが不要になり、メンテナンス時間が大幅に短縮されました。ただし、Excel 2019以前の環境では動作しないため、共有相手のバージョンを確認してから導入するようにしましょう。

スポンサーリンク

まとめ:VLOOKUPエラーは症状から原因を絞り込む

VLOOKUPエラーの原因は「型の不一致」「参照のズレ」「引数の設定ミス」の3つに集約されます。以下の優先順位で確認してみてください。

 

優先度 チェック項目 対象の症状
① 最優先 VALUE / TRIM関数で型とスペースを整形 #N/Aエラー(データはある)
第4引数にFALSEを明記 近い値が返ってくる
絶対参照($)を付与 コピーで結果がズレる
列番号を範囲の列数以下に修正 #REF!エラー
計算方法を「自動」に変更 数式が更新されない

 

VLOOKUPエラーを根本から減らすには、検索キーをドロップダウンリストで選択式にして手入力ミスを防ぐ方法も有効です。Excelプルダウンが表示されない・選べない原因と直し方【2026年版】も参考にしてみてください。

 

Excelの関連トラブルは以下の記事もあわせてどうぞ。

タイトルとURLをコピーしました