【Excel】VLOOKUPで数字が一致せず#N/Aになる時の対処|型と書式の違い

【Excel】VLOOKUPで数字が一致せず#N/Aになる時の対処|型と書式の違い
🛡️ 超解決

VLOOKUPで見た目が同じ番号を検索しても#N/Aになるときは、検索値と検索先が数値・文字列に分かれていないか確認します。「セルの書式設定」が両方とも標準でも、中身の型がそろっているとは限りません。列全体を変換する前に、一組のデータで原因を調べます。

ADVERTISEMENT

1. 検索値と、見つかるはずのセルを比べる

検索値がE2、検索先で一致するはずの値がA5なら、それぞれにISNUMBERとISTEXTを使います。片方が数値、もう片方が文字列なら、表示が123同士でも検索の不一致を疑います。

検査用の式 確認すること
=ISNUMBER(E2) E2が数値ならTRUE
=ISTEXT(A5) A5が文字列ならTRUE
=LEN(A5) 文字数が想定より多くないか

ISNUMBERがFALSEでも、必ず文字列とは限りません。空欄や論理値などもあるため、検索する番号が実際に入っているかも確認します。

※ お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

2. 書式を標準にするだけでは変換が完了しない

文字列として入力済みの数字は、表示形式を標準に変えても文字列のまま残る場合があります。書式の名称だけで直ったと判断せず、ISNUMBER・ISTEXTで再確認してください。

試しに1セルを再入力して一致するようになったとしても、その操作をすべての列へ広げる前に、先頭0や長い番号が含まれないか調べます。「区切り位置」で列全体を再解釈すると、番号や日付まで変換されるおそれがあります。

3. 計算する数なら補助列で数値化する

金額・数量など、数値にそろえてよいデータなら、元の列を残して補助列に=VALUE(A2)を入れます。変換結果と元データを比べ、エラーがないことを確認してから、その補助列を検索に使います。

VALUEは地域設定や記号の影響を受けるため、海外表記の小数点・桁区切りも確認が必要です。住所番号や社員番号を、数字だけだからという理由で一律に数値化しないでください。

4. 識別番号なら文字列としての桁をそろえる

社員番号00123と123を同じものと扱うかは、番号の規則次第です。5桁固定と決まっていて数値123から文字列00123を作るなら、=TEXT(A2,"00000")のように指定できます。桁数が一定でないコードには、そのまま適用できません。

=A2&""は数値を文字列へ変えますが、失われた先頭0や16桁以上の末尾を復元するものではありません。原本で正式なコードを確認してから、検索する側とされる側の両方を整えます。

5. 型が一致しても、範囲と検索条件を確認する

VLOOKUPは指定した範囲の左端列を検索します。コード列が左端にあるか、対象行まで範囲に入っているか、完全一致なら第4引数がFALSEになっているかを確認します。前後のスペースや見えない文字による違いも別途調べます。

検索値に*や?が含まれる場合はワイルドカードとして働く点にも注意します。まず通常のコード1件で式を検算し、IFERRORで#N/Aを隠すのは原因を解消した後にしてください。

6. 変換後のコード重複を検査する

00123と123を同じ表記へ変えると、別々の行が同一コードになる場合があります。VLOOKUPは一致した最初の行を返すため、エラーが消えても違う部署や価格を取得している可能性があります。重複件数と戻り値を原本に照らし、問題がない範囲だけ採用します。

参考: Microsoft公式: #N/Aエラーの修正、VLOOKUP関数

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。
この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】