スキップしてメイン コンテンツへ

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

注: 最新のヘルプ コンテンツをできるだけ早く、お客様がお使いの言語で提供したいと考えております。このページは、自動翻訳によって翻訳されているため、文章校正のエラーや不正確な情報が含まれている可能性があります。私たちの目的は、このコンテンツがお客様の役に立つようにすることです。お客様にとって役立つ情報であったかどうかを、このページの下部でお知らせください。簡単に参照できるように、こちらに英語の記事があります。

このトピックでは、 VLOOKUP関数に誤った結果が発生する最も一般的な理由について説明し、代わりにINDEXMATCHを使用するためのヒントを示します。

ヒント: また、「クイックリファレンスカード: VLOOKUP のトラブルシューティングのヒント」を参照して、便利な PDF ファイルで #NA の問題が発生する理由を示します。PDF を他のユーザーと共有したり、独自の参照用に印刷したりすることができます。

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

VLOOKUP の1つの制約は、テーブル配列の左端の列の値のみを検索できることです。参照値が配列の最初の列にない場合は、#N/a エラーが表示されます。

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

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

#N/a エラーが発生するのは、左端引数 A2: C10 の2番目の列 (生成) にルックアップ値"ケール"が表示されているためです。この場合、Excel では列 B ではなく列 a で探しています。

解決策: 適切な列を参照するように VLOOKUP を調整することによって、この問題を解決することができます。それができない場合は、列を移動してみてください。また、セルの値が他の計算の結果である大規模または複雑なスプレッドシートを使用している場合、または単に列を移動できない他の論理的な理由がある場合には、非常に不可能になることがあります。この解決策は、インデックスと MATCH 関数を組み合わせて使用することで、ルックアップテーブル内の位置に関係なく、列内の値を検索することができます。次のセクションを参照してください。

代わりに INDEX/MATCH を使用することを検討する

INDEXMATCHは、VLOOKUP がニーズを満たしていない多くの場合に適したオプションです。インデックス/一致の主な利点は、ルックアップテーブル内の任意の場所にある列の値を検索できることです。INDEX は、指定されたテーブル/範囲から値を返します。位置によって異なります。MATCH テーブル/範囲内の値の相対的な位置を返します。テーブル/配列内の値の相対的な位置を指定して、テーブル/配列の値を検索するには、数式で INDEX と MATCH を使用します。

VLOOKUP の代わりに INDEX/MATCH を使用すると、いくつかの利点があります。

  • INDEX と MATCH の場合、戻り値はルックアップ列と同じ列に含まれている必要はありません。これは VLOOKUP とは異なり、戻り値は指定した範囲内である必要があります。この問題についてVLOOKUP を使用する場合は、戻り値を含む列番号を知っている必要があります。これは困難ではないかもしれませんが、大きなテーブルを持っていて列数をカウントする必要がある場合は、煩雑になることがあります。また、テーブル内の列を追加または削除する場合は、引数を再集計して更新する必要があります。INDEX と MATCH を使用すると、ルックアップ列が戻り値を持つ列と異なるため、カウントは必要ありません。

  • INDEX と MATCH を使用すると、配列内の行または列のいずれかを指定したり、両方を指定したりすることができます。つまり、値を上下左右に検索できます。

  • INDEX と MATCH を使用して、任意の列の値を検索できます。VLOOKUP とは異なり、テーブルの最初の列の値のみを検索できます。インデックスと照合は、ルックアップ値が最初の列、最後、またはその間の任意の場所にある場合に機能します。

  • INDEX と MATCH は、戻り値を含む列を動的に参照する柔軟性を提供します。これは、インデックスを破らずにテーブルに列を追加して一致させることができることを意味します。一方、テーブルに列を追加する必要がある場合は、テーブルへの静的参照を作成するので、VLOOKUP は中断します。

  • INDEX と MATCH を使うと、一致する柔軟性が向上します。INDEX と match は、完全一致を見つけることができます。またはルックアップ値よりも大きいまたは小さい値です。VLOOKUP は、値 (既定) または正確な値に最も近い一致を検索します。また、VLOOKUP は既定で、table 配列の先頭の列がアルファベット順に並べ替えられていることを前提としており、テーブルがそのように設定されていない場合、VLOOKUP はテーブル内で最初に最も近い一致を返します。

構文

index/match の構文を作成するには、index 関数の配列/参照引数を使用して、その中に一致する構文を入れ子にする必要があります。次の形式で実行します。

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

上記の例では、INDEX/MATCH を使用して VLOOKUP を置換してみましょう。構文は次のようになります。

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

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

= INDEX (C2: C10 の値を返します (これは、B2: B10 配列内のどこかにあります。これは、戻り値がケードに対応する最初の値である) に一致します)。

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

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

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

"引数が FALSE の場合、VLOOKUP はデータの完全一致を見つけることができないため、#N/a エラーが返されます。

解決策: 関連データがスプレッドシートに存在していることを確認し、VLOOKUP がそれをキャッチしていない場合は、参照先のセルに非表示のスペースまたは印刷されない文字が含まれていないことを確認するために時間がかかります。また、セルが正しいデータ型に従っていることを確認します。たとえば、数値を含むセルは、テキストではなく数値として書式設定されている必要があります。

また、クリーンまたはTRIM関数を使用して、セル内のデータをクリーンアップすることも検討してください。

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

"引数が TRUE に設定されており、参照値が配列の最小値より小さい場合は、#N/a エラーが表示されます。TRUE を指定すると、配列内の近似一致が検索され、参照値よりも小さい最も近い値が返されます。

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

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

解決方法:

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

  • ルックアップ値を変更できず、一致する値をより柔軟にする必要がある場合は、VLOOKUP の代わりに INDEX/MATCH を使用することを検討してください。この記事の上のセクションを参照してください。INDEX/MATCH を使用すると、ルックアップ値に対する値よりも大きい、小さい、または同等になるように検索できます。VLOOKUP の代わりに INDEX/MATCH を使用する方法の詳細については、このトピックの前のセクションを参照してください。

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

"引数が TRUE に設定されていて、参照列の1つが昇順 (a-z) で並べ替えられていない場合は、#N/a エラーが表示されます。

解決方法:

  • VLOOKUP 関数を変更して、完全に一致するものを探します。これを行うには、 "引数をFALSEに設定します。FALSE の場合、並べ替えは必要ありません。

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

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

セルに時間値または小数点以下の桁数がある場合、Excel は浮動小数点数の精度のために #N/a エラーを返します。浮動小数点数は、小数点の後に続く数値です。(Excel では、時刻の値を浮動小数点数として保存します)。Excel では、非常に大きな浮動小数点数の数値を格納できないため、関数が正しく動作するには、浮動小数点数を小数点以下5桁に四捨五入する必要があります。

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

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

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

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

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

関連項目

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

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

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

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

×