ヒント: 新しい XLOOKUP 関数を使用してみてください。これは、任意の方向に動作し、既定で完全一致を返す VLOOKUP の改善されたバージョンであり、先行タスクよりも簡単で使いやすくなっています。

VLOOKUP は、テーブルまたは行別の範囲で検索する必要がある場合に使用します。 たとえば、部品番号で自動車部品の価格を検索したり、従業員 ID に基づいて従業員名を検索したりします。

その最も簡単な形式で、VLOOKUP 関数は次のようになります。

=VLOOKUP(検索する場所、返す値を含む範囲内の列番号、近似値または完全一致を返します。1/TRUE、または 0/FALSE として示されます)。

お使いのブラウザーではビデオがサポートされていません。

ヒント: VLOOKUP の秘密は、検索する値 (Fruit) が検索する戻り値 (Amount) の左側に表示されるデータを整理することです。

表内で値を検索するには、VLOOKUP 関数を使用します。

構文 

VLOOKUP(検索値, 範囲, 列番号, [検索の型])

次に例を示します。

  • =VLOOKUP(A2,A10:C20,2,TRUE)

  • =VLOOKUP("前田",B2:E7,2,FALSE)

  • =VLOOKUP(A2,'Client Details'!A:F,3,FALSE)

引数名

説明

検索値    (必須)

検索の対象となる値。 検索する値は、指定したセル範囲の最初の列に含table_arrayがあります。

たとえば、テーブル配列 セル B2:D7 にまたがった場合、lookup_value列 B に入力する必要があります。

Lookup_value 値またはセルへの参照を指定できます。

範囲    (必須)

VLOOKUP が検索値と戻り値を検索するセル範囲。 名前付き範囲またはテーブルを使用できます。また、セル参照の代わりに引数に名前を使用することもできます。 

セル範囲の最初の列には、 の値が含lookup_value。 セル範囲には、検索する戻り値も含める必要があります。

ワークシートで範囲を選択する方法については、こちらを参照してください。

列番号    (必須)

戻り値を含む列番号 (列の一番左の列table_array 1から始まる)。

検索の型    (省略可)

VLOOKUP を使用して、近似一致を検索するか、完全一致を検索するかを指定する論理値です。

  • 近似一致 - 1/TRUE は、テーブルの最初の列が数値またはアルファベット順に並べ替え、最も近い値を検索すると想定します。 この引数を省略した場合は、TRUE が指定されたものとみなされます。 たとえば、=VLOOKUP(90,A1:B100,2,TRUE)。

  • 完全一致 - 0/FALSE は 、最初の列の正確な値を検索します。 たとえば、=VLOOKUP("Smith",A1:B100,2,FALSE)。

利用方法

VLOOKUP の構文を作成するには、4 つの情報が必要になります。

  1. 検索する値、検索値とも呼ばれます。

  2. 検索値が含まれるセル範囲。 VLOOKUP が正常に機能するために、検索値は範囲の最初の列に必ず位置している必要があることに注意してください。 たとえば、検索値がセル C2 にある場合、範囲は C 列から始まる必要があります。

  3. 戻り値を含む範囲内の列番号。 たとえば、範囲として B2:D11 を指定する場合は、B を最初の列としてカウントし、C を 2 番目の列としてカウントする必要があります。

  4. 必要に応じて、戻り値として近似一致を検索する場合は TRUE、完全一致を検索する場合は FALSE を指定できます。 何も指定しない場合、既定値は TRUE、つまり近似一致を常に返します。

以上をまとめると次のようになります。

=VLOOKUP(ルックアップ値、ルックアップ値を含む範囲、戻り値を含む範囲内の列番号、近似一致 (TRUE)、または完全一致 (FALSE))。

使用例

VLOOKUP の例を次に示します。

使用例 1

=VLOOKUP (B3,B2:E7,2,FALSE)

VLOOKUP は、table_array B2:E7 の最初の列 (列 B) で Fontana を検索し、table_array の 2 番目の列 (列 C) から Olivier を返します。  False は完全一致を返します。

使用例 2

=VLOOKUP (102,A2:C7,2,FALSE)

VLOOKUP は、A2:C7 範囲の 2 番目の列 (列 B) で 102 (lookup_value) の名の完全一致 (FALSE) を検索し、Fontana を返します。

例 3

=IF(VLOOKUP(103,A1:E7,2,FALSE)="Souse","Located","Not found")

IF は、A1:E7 (table_array) で 103 (lookup_value) に関連する従業員の名として、VLOOKUP が Sousa を返すtable_array。 103 に対応する名は Leal なので、IF 条件は false で、Not Found が表示されます。

使用例 4

=INT(YEARFRAC(DATE(2014,6,30),VLOOKUP(105,A2:E7,5,FLASE),1))

VLOOKUP は、A2:E7 範囲 (table_array) の 109 (lookup_value) に対応する従業員の生年月日を検索し、1955 年 3 月 4 日を返します。 次に、YEARFRAC は 2014/6/30 からこの生年月日を減算し、値を返します。この値は INY によって整数 59 に変換されます。

使用例 5

IF(ISNA(VLOOKUP(105,A2:E7,2,FLASE))=TRUE,"従業員が見つかりません",VLOOKUP(105,A2:E7,2,FALSE))

IF は、VLOOKUP が列 B から 105 (lookup_value) の値を返すのを確認します。 VLOOKUP が名を見つけた場合、IF は名を表示し、それ以外の場合は Employee not found を返します。 ISNA は、VLOOKUP が #N/A を返した場合、エラーが #N/A ではなく Employee not found に置き換えられる必要があります。



この例では、戻り値は Burke です。これは 105 に対応する名です。

VLOOKUP を使用すると、1 つのテーブルに他のすべてのテーブルと共通するフィールドがある限り、複数のテーブルを 1 つのテーブルに結合できます。 これは、ソースを 1 つのテーブルに結合し、データ機能のデータ ソースを新しいテーブルに変更して、データ機能を以前のバージョンの Excel バージョンで使用できます (データ機能自体が以前のバージョンでサポートされている場合) など、複数のテーブルを持つデータ機能をサポートしない古いバージョンの Excel を持つユーザーとブックを共有する必要がある場合に特に便利です。

VLOOKUP を使用して他のテーブルからデータを取得する列を含むワークシート

ここでは、A ~ F 列と H 列にはワークシートの値のみを使用する値または数式があります。残りの列では、VLOOKUP と列 A (クライアント コード) と列 B (代理人) の値を使用して、他のテーブルからデータを取得します。

  1. 共通フィールドを含むテーブルを新しいワークシートにコピーし、名前を付きます。

  2. [Data >Data Tools >リレーションシップ] を クリックして、[リレーションシップの管理] ダイアログ ボックスを開きます。

    [リレーションシップの管理] ダイアログ ボックス
  3. 表示されているリレーションシップごとに、次の点に注意してください。

    • テーブルをリンクするフィールド (ダイアログ ボックスのかっこ内に表示されます)。 これは 、VLOOKUP lookup_value の一部です。

    • 関連するルックアップ テーブル名。 これは 、VLOOKUP table_array の一部です。

    • 新しい列に必要なデータを含む関連ルックアップ テーブルのフィールド (列)。 この情報は 、[リレーションシップの管理] ダイアログには表示されません。[関連ルックアップ テーブル] を見て、取得するフィールドを確認する必要があります。 列番号 (A=1) をメモする必要があります。これは、数式 col_index_num値です

  4. 新しいテーブルにフィールドを追加するには、手順 3 で収集した情報を使用して、最初の空の列に VLOOKUP 数式を入力します。

    この例では、列lookup_value Gでは、4 番目の列(col_index_num = 4) から、=VLOOKUP([@Attorney],tbl_Attorneys,4,FALSE)という数式を使用して tblAttorneys (table_array)から請求率データを取得します。

    数式では、セル参照と範囲参照を使用できます。 この例では 、=VLOOKUP(A2,'Attorneys'!A:D,4,FALSE)。

  5. 必要なすべてのフィールドが表示されるまで、フィールドの追加を続行します。 複数のテーブルを使用するデータ機能を含むブックを準備する場合は、データ機能のデータ ソースを新しいテーブルに変更します。

問題

原因

戻された値が正しくない

検索の型がTRUE、または指定を省略した場合、左端列を英字または数値順に並べ替えておく必要があります。 左端列が並べ替えられていない場合、想定外の値が戻される可能性があります。 左端列を並べ替えるか、または FALSE を使用して、完全一致を検索してください。

セルに #N/A と表示される

  • 検索の型がTRUEの場合、検索値の値が範囲の左端列にある最小値よりも小さいと、#N/Aエラー値を返します。

  • 検索の型 が FALSE の場合、#N/A エラー値は、完全に一致する値が見つからなかったことを表します。

VLOOKUP で #N/A エラーを解決する方法の詳細については、「VLOOKUP 関数の #N/A エラーを修正する方法」を参照してください。

セルに #REF! と表示される

テーブルcol_index_num内の列数よりも大きい場合は、次の値#REF。 エラー値。

VLOOKUP で #REF! エラーを解決する方法の詳細については、「エラー値 #REF! を修正する方法.

セルに #VALUE! と表示される

範囲 が 1 未満の場合、#VALUE! エラー値を返します。

VLOOKUP で #VALUE! エラーを解決する方法の詳細については、「VLOOKUP 関数の #VALUE! エラーを修正する方法.

セルに #NAME? が表示される

想定される結果ではなく、#Name? エラー値は、通常、数式に引用符が欠落しています。 ユーザーの名前を検索するには、数式の名前を引用符で囲む必要があります。 たとえば、=VLOOKUP("Fontana",B2:E7,2,FALSE) に "Fontana" という名前を入力します。

詳細については、「エラー値 #NAME! を修正する方法.

Excel での #SPILL! と表示される

この特定の エラー#SPILL! 通常は、数式が参照値の暗黙的な共通部分に依存し、列全体を参照として使用しているという意味です。 たとえば、=VLOOKUP(A:A,A:C,2,FALSE)。 =VLOOKUP( @A:A:C,2,FALSE) のように参照参照を@ 演算子で固定することで、この問題を解決できます。 または、従来の VLOOKUP メソッドを使用して、列全体ではなく 1 つのセルを参照することもできます。=VLOOKUP(A2,A:C,2,FALSE)。

操作

理由

検索の型には絶対参照を使う

絶対参照を使うと、数式を下方向へコピーした場合に常にまったく同じ検索範囲を参照することができます。

セルの絶対参照については、こちらを参照してください。

数値や日付を文字列として保存しない。

数値または日付の値を検索する場合は、データの最初の列のデータtable_arrayテキスト値として格納されていない必要があります。 文字列として保存されている場合、誤った値や想定外の値が返されることがあります。

左端列を並べ替える

検索の型がTRUE の場合は VLOOKUPを使う前に、範囲の左端列を並べ替えます。

ワイルドカード文字を使う

FALSE range_lookupテキストlookup_value場合は、ワイルドカード文字 (疑問符 (?) とアスタリスク (*) を使用lookup_value。 疑問符は任意の 1 文字に相当します。 アスタリスクは任意の一連の文字列に相当します。 ワイルドカード文字ではなく、通常の文字として疑問符やアスタリスクを検索する場合は、その文字の前にチルダ (~) を付けます。

たとえば、=VLOOKUP("Fontan?",B2:E7,2,FALSE) は、異なる可能性のある最後の文字で Fontana のすべてのインスタンスを検索します。

データに誤字が含まれていないことを確認する。

左端の列にある文字列を検索するときは、この列にあるデータの先頭または末尾に余分なスペースがないこと、まっすぐな引用符 (' または ") と丸みを帯びた引用符 (‘ または “) が混在しないこと、印刷されない文字が含まれていないことを確認してください。 このいずれかに該当する場合は、予期しない値が返されることがあります。

正確な結果を得るために、CLEAN 関数または TRIM 関数を使って、表のセル値の末尾にある余分なスペースを削除してください。

補足説明

Excel 技術コミュニテでは、いつでも専門家に質問できます。また、Answers コミュニティでは、サポートを受けられます。

関連項目

クイック リファレンス カード: VLOOKUP の更新
クイック リファレンス カード: VLOOKUP のトラブルシューティングのヒント
VLOOKUP 関数#VALUE! エラーを修正する方法
VLOOKUP 関数#N/A エラーを修正する方法
Excel の数式のExcel
壊れた数式を回避する方法
数式のエラーを検出する
Excel関数 (アルファベット順)
Excel関数 (カテゴリ別)
VLOOKUP (無料プレビュー)

ヘルプを表示

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

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

翻訳品質にどの程度満足していますか?

どのような要因がお客様の操作性に影響しましたか?

その他にご意見はありますか?(省略可能)

フィードバックをお送りいただきありがとうございます!

×