目次
VLOOKUP関数は、Excelで最もよく使われる検索・参照関数ですが、最も厄介な関数の1つでもあり、恐ろしい#N/Aエラーメッセージがよく見受けられることがあります。
この記事では、VLOOKUPが機能しない最も一般的な6つの原因について見ていきます。
完全一致が必要
というVLOOKUP関数の最後の引数があります。 レンジルック は、おおよその一致か完全一致かを尋ねます。
ほとんどの場合、特定の製品、注文、従業員、顧客を探しているため、完全一致を必要とします。 一意の値を探している場合は、FALSEを入力する必要があります。 レンジルック の議論になります。
この引数はオプションですが、空の場合は TRUE の値が使用されます。 TRUE の値は、データが昇順にソートされていることを前提としています。
下の画像は、VLOOKUPの引数range_lookupが省略され、誤った値が返されたものです。
解決方法
一意な値を探す場合は、最後の引数にFALSEを入力します。 上記のVLOOKUPは、次のように入力します。 =vlookup(h3,b3:f11,2,false)
.
テーブルリファレンスをロックする
複数のVLOOKUPを使用して、レコードに関する異なる情報を返そうと考えているのかもしれません。 VLOOKUPを複数のセルにコピーしようと考えている場合は、テーブルをロックする必要があります。
下図は、VLOOKUPの入力に誤りがあったものです。 間違ったセル範囲を参照しているため ルックアップバリュー と テーブルアレイ .
解決方法
VLOOKUP関数が情報を探して返すために使用するテーブルを table_array これは、VLOOKUPをコピーするために絶対に参照する必要があります。
数式内の参照をクリックし、キーボードのF4キーを押して、参照を相対から絶対へ変更します。 数式は、次のように入力されます。 =vlookup($h$3,$b$3:$f$11,4,false)です。
.
この例では、両方の ルックアップバリュー と table_array を絶対視していたのです。 一般的に、それは単に table_array ロックが必要なもの
カラムが挿入された
列のインデックス番号、または col_index_num は、VLOOKUP機能で、レコードについてどのような情報を返すかを入力するために使用されます。
これはインデックス番号として入力されるため、耐久性に欠けます。 テーブルに新しい列が挿入された場合、VLOOKUPが動作しなくなる可能性があります。 下の画像はそのようなシナリオを示したものです。
数量は3列目にありましたが、新しい列が挿入された後、4列目になりました。 しかし、VLOOKUPは自動的に更新されていません。
解決策1
一つの解決策は、ユーザーが列を挿入できないようにワークシートを保護することかもしれません。 もし、ユーザーがこれをできるようにする必要があるならば、それは実行可能な解決策ではありません。
解決策2
もう一つの方法として、MATCH関数を col_index_num VLOOKUPの引数です。
があります。 MATCH
関数を使って、必要な列番号を探して返すことができます。 これによって col_index_num ダイナミックであるため、挿入された列がVLOOKUPに影響を与えることはありません。
この例では、以下のような数式を入力することで、上記のような問題を防ぐことができます。
テーブルが大きくなった
テーブルに行が増えると、VLOOKUPはこれらの余分な行を含むように更新する必要があるかもしれません。 下の画像は、果物という項目について、テーブル全体をチェックしないVLOOKUPを表しています。
解決方法
範囲を表としてフォーマットする(Excel 2007+)か、ダイナミックレンジ名としてフォーマットすることを検討してください。 これらのテクニックは、VLOOKUP関数が常に表全体をチェックすることを保証するものです。
範囲を表としてフォーマットするには、使用するセル範囲を選択して table_array をクリックします。 ホーム > 表形式にする をクリックし、ギャラリーからスタイルを選択します。 デザイン タブをクリックし、表示されるボックスでテーブル名を変更します。
下のVLOOKUPは、「」という名前のテーブルを表示しています。 フルーツリスト 使用されています。
VLOOKUPは左側を見ることができない
VLOOKUP関数の制限として、左側を見ることができません。 テーブルの左端の列を調べて、右側から情報を返します。
解決方法
VLOOKUPの代わりに、ExcelのINDEX関数とMATCH関数を組み合わせて使うのが一般的です。 その方がはるかに汎用性が高いのです。
以下の例では、探している列の左側の情報を返すために使用されています。
INDEXとMATCHの使い方はこちら
テーブルが重複している
VLOOKUP関数は1つのレコードしか返すことができません。 探した値と一致する最初のレコードを返します。
テーブルが重複している場合、VLOOKUPでは対応しきれません。
解決策1
リストに重複がある場合は、それを削除することを検討してください。 これを行うには、テーブルを選択して 重複を排除する ボタンをクリックします。 データ タブで表示します。
Excelテーブルの重複を処理するためのより完全なツールは、AbleBits Duplicate Removerをチェックしてください。
解決策2
この場合、VLOOKUPは必要ありません。 ピボットテーブルは、値を選択して結果を一覧表示するのに最適なツールです。
下の表は注文のリストですが、ある果物に対するすべての注文を返したい場合を考えてみましょう。
ピボットテーブルを使用し、ユーザーがレポートフィルターからフルーツIDを選択すると、すべての注文のリストが表示されるようにしました。
トラブルフリーVLOOKUP
この記事では、VLOOKUP関数が機能しない最も一般的な6つの理由に対する解決策を示しました。 この情報を活用することで、この素晴らしいExcel関数をより快適に使用できるようになります。
著者について
Alan MurrayはITトレーナーであり、Computergagaの創設者です。 彼はオンライントレーニングやExcel、Word、PowerPoint、Projectの最新のヒントを提供しています。