VLOOKUP 関数の #N/A エラーを修正する方法

このトピックでは、VLOOKUP が失敗する場合の一般的な理由について説明します。

ヒント: VLOOKUP の #NA 問題の一般的な理由については、便利な PDF (Portable Document Format) ファイルの「クイック リファレンス カード:VLOOKUP トラブルシューティング ヒント」を参照してください。この PDF を他のユーザーと共有したり、印刷して手元に置いたりすることもできます。

問題:参照値が table_array 引数の最初の列にない

VLOOKUP の最も大きな制限の 1 つは、テーブルの配列の左端の列にある値のみを参照する点です。そのため、参照値が配列の最初の列にない場合、#N/A エラーが表示されます。

次のテーブルでは、Kale に販売された単位数を取得しようとしています。

VLOOKUP の #NA エラー:参照値がテーブル配列の最初の列にありません

このエラーは、参照値の "Kale" が table_array 引数 (A2:C10) の 2 列目 (Produce) にあり、列 B ではなく、列 A が検索されるために発生します。

解決方法:正しい列を参照するように、VLOOKUP を調整することができます。調整できない場合は、列を移動します。セル値が他の計算結果である大規模、または複雑なスプレッドシートの場合や、列を移動できない他の論理的な理由がある場合、列の移動は実用的ではないことがあります。この問題を解決するには、INDEX 関数と MATCH 関数を組み合わせて使用し、ルックアップ テーブル内の列の位置にかかわらず、列の値を参照する方法があります。

VLOOKUP の代わりに INDEX/MATCH を使用する

INDEX/MATCH は、VLOOKUP がニーズに合わないときに使用できます。INDEX/MATCH の最も大きな利点は、ルックアップ テーブル内の任意の位置にある列の値を参照できることです。INDEX は、指定したテーブル/範囲の位置に基づいて値を返します。MATCH は、テーブル/範囲の値の相対的な位置を返します。数式に INDEX と MATCH を両方使用すると、テーブル/配列内の値の相対的な位置を指定することで、テーブル/配列内の値を参照できます。

VLOOKUP よりも INDEX/MATCH を使用する方が多くの利点があります。

  • INDEX と MATCH の場合、戻り値が指定した範囲内にある必要がある VLOOKUP とは異なり、戻り値が参照列と同じ列内にある必要はありません。これはどのような意味があるでしょうか。VLOOKUP では、戻り値を含む列番号を知る必要があります。あまり大きな問題ではないかもしれませんが、大きなテーブルで、列数を数える必要があると面倒なことがあります。また、テーブルに列を追加または削除すると、数え直し、col_index_num 引数を更新する必要があります。INDEX と MATCH の場合、参照列は戻り値を含む列とは異なるので、数える必要はありません。

  • INDEX と MATCH では、配列で行または列、または両方を指定することができます。そのため、垂直方向と水平方向の両方で値を検索できます。

  • INDEX と MATCH を使用して、任意の列の値を検索できます。テーブルの最初の列内にある値のみを検索できる VLOOKUP とは異なり、INDEX と MATCH は、最初の列、最後の列、またはその間の任意の列にある参照値でも検索できます。

  • INDEX と MATCH には、戻り値を含む列を動的に参照できる柔軟性があります。つまり、テーブルに列を追加しても、INDEX と MATCH は機能します。一方、テーブルに列を追加すると、VLOOKUP はテーブルの静的参照なので機能しなくなります。

  • INDEX と MATCH はより柔軟に対応付けることができます。INDEX と MATCH では、参照値と完全に一致する値、より大きい値、またはより小さい値を検索できます。VLOOKUP は、最も近い値 (既定) または完全に一致する値のみを検索します。また、VLOOKUP は、既定ではテーブル配列の最初の列がアルファベット順に並べ替えられていると想定しています。テーブルがそのようにセットアップされていない場合、検索している値でなくても、テーブル内の最初の最も近い値を返します。

構文

INDEX/MATCH の構文を構築するには、INDEX 関数の array/reference 引数を使用し、その中に MATCH 構文を入れ子にする必要があります。そのため、次のような構文になります。

=INDEX(array または reference, MATCH(lookup_value,lookup_array,[match_type])

前述の例の VLOOKUP を INDEX/MATCH で置き換えてみましょう。構文は次のようになります。

=INDEX(C2:C10,MATCH(B13,B2:B10,0))

簡単な文章で説明すると、次のようになります。

=INDEX(C2:C10 から値を返したい, それは MATCH(Kale, B2:B10 配列のどこかにある, 戻り値は Kale に対応する最初の値である位置))

INDEX 関数と MATCH 関数を VLOOKUP の代わりに使用できます

この数式は、Kale (B7 内) に対応する C2:C10 の最初の値を検索し、C7 (100) の値を返します。これは、Kale に一致する最初の値です。

問題:完全一致が見つからない

range_lookup 引数が FALSE で、VLOOKUP でデータ内に完全一致を見つけられない場合、#N/A エラーが返されます。

解決方法:関連するデータがスプレッドシート内に確実にあり、VLOOKUP で見つけられない場合は、参照対象のセルに非表示のスペースや印刷されない文字が含まれていないことを確認します。また、セルが正しいデータ型に従っていることを確認します。たとえば、数値を含むセルは、文字列ではなく、数値として書式が設定されている必要があります。

CLEAN または TRIM 関数を使用して、セル内のデータをクリーンアップしてください。

問題:参照値が、配列内の最小値よりも小さい

range_lookup 引数が TRUE に設定され、参照値が配列の最小値よりも小さい場合、#N/A エラーが表示されます。TRUE の場合、配列内の近似の一致が検索され、参照値よりも小さい最も近い値が返されます。

次の例では、参照値は 100 ですが、B2:C10 の範囲には 100 未満の値がないため、エラーになります。

参照値が配列の最小値未満の場合、VLOOKUP で N/A エラーが発生する

解決方法:

  • 必要に応じて参照値を修正します。

  • 参照値を変更できず、値のマッチングを柔軟にする必要がある場合は、VLOOKUP ではなく INDEX/MATCH を使用することをお勧めします。INDEX/MATCH の場合、参照値よりも大きい値、小さい値、または一致する値を検索できます。VLOOKUP ではなく INDEX/MATCH を使用する方法については、このトピックの前のセクションを参照してください。

問題:参照列が昇順で並べ替えられていない

range_lookup 引数が TRUE に設定され、参照列のいずれかが昇順 (A-Z) で並べ替えられていない場合、#N/A エラーが表示されます。

解決方法:

  • 完全な一致を検索するように VLOOKUP 関数を変更します。この場合、range_lookup 引数を FALSE に設定します。FALSE の場合、並べ替え必要はありません。

  • 並べ替えられていないテーブルで値を検索するには、INDEX/MATCH 関数を使用します。

問題:値が大きな浮動小数点数

セルに時間値または大きな 10 進数がある場合、浮動小数点精度により Excel は #N/A エラーを返します。浮動小数点数は、小数点以下の数値です (Excel は時間値を浮動小数点数として保存することにご注意ください)。Excel は大きい浮動小数点数を格納できません。そのため、関数が正常に動作するには、浮動小数点数を小数点以下 5 桁に丸める必要があります。

解決方法:数字を短くするには、ROUND 関数を使用して小数点以下の桁数を 5 桁以下に丸めます。

特定の関数について質問がある場合

Excel のコミュニティ フォーラムに質問を投稿してください

Excel の機能を向上させるためのお願い

次のバージョンの Excel の改善に関して、ご提案はございませんか。提案がありましたら、Excel UserVoice のトピックをご確認ください。

関連項目

エラー値 #N/A を修正する方法

VLOOKUP:#NA を解決する

Excel の HLOOKUP、VLOOKUP、LOOKUP で誤った値が返される

Excel で浮動小数点演算の結果が正しくない場合がある

クイック リファレンス カード:VLOOKUP 更新

VLOOKUP 関数

Excel の数式の概要

壊れた数式のエラーを回避する方法

Excel 2016 で数式のエラーを検出する

Excel 関数 (アルファベット順)

Excel 関数 (機能別)

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×