ヒント: 新しい 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 を使用して、近似一致を検索するか、完全一致を検索するかを指定する論理値です。
|
利用方法
VLOOKUP の構文を作成するには、4 つの情報が必要になります。
-
検索する値、検索値とも呼ばれます。
-
検索値が含まれるセル範囲。 VLOOKUP が正常に機能するために、検索値は範囲の最初の列に必ず位置している必要があることに注意してください。 たとえば、検索値がセル C2 にある場合、範囲は C 列から始まる必要があります。
-
戻り値を含む範囲内の列番号。 たとえば、範囲として B2:D11 を指定する場合は、B を最初の列としてカウントし、C を 2 番目の列としてカウントする必要があります。
-
必要に応じて、戻り値として近似一致を検索する場合は TRUE、完全一致を検索する場合は FALSE を指定できます。 何も指定しない場合、既定値は TRUE、つまり近似一致を常に返します。
以上をまとめると次のようになります。
=VLOOKUP(ルックアップ値、ルックアップ値を含む範囲、戻り値を含む範囲内の列番号、近似一致 (TRUE)、または完全一致 (FALSE))。
使用例
VLOOKUP の例を次に示します。
使用例 1

使用例 2

例 3

使用例 4

使用例 5

VLOOKUP を使用すると、1 つのテーブルに他のすべてのテーブルと共通するフィールドがある限り、複数のテーブルを 1 つのテーブルに結合できます。 これは、ソースを 1 つのテーブルに結合し、データ機能のデータ ソースを新しいテーブルに変更して、データ機能を以前のバージョンの Excel バージョンで使用できます (データ機能自体が以前のバージョンでサポートされている場合) など、複数のテーブルを持つデータ機能をサポートしない古いバージョンの Excel を持つユーザーとブックを共有する必要がある場合に特に便利です。
![]() |
ここでは、A ~ F 列と H 列にはワークシートの値のみを使用する値または数式があります。残りの列では、VLOOKUP と列 A (クライアント コード) と列 B (代理人) の値を使用して、他のテーブルからデータを取得します。 |
-
共通フィールドを含むテーブルを新しいワークシートにコピーし、名前を付きます。
-
[Data >Data Tools >リレーションシップ] を クリックして、[リレーションシップの管理] ダイアログ ボックスを開きます。
-
表示されているリレーションシップごとに、次の点に注意してください。
-
テーブルをリンクするフィールド (ダイアログ ボックスのかっこ内に表示されます)。 これは 、VLOOKUP lookup_value の一部です。
-
関連するルックアップ テーブル名。 これは 、VLOOKUP table_array の一部です。
-
新しい列に必要なデータを含む関連ルックアップ テーブルのフィールド (列)。 この情報は 、[リレーションシップの管理] ダイアログには表示されません。[関連ルックアップ テーブル] を見て、取得するフィールドを確認する必要があります。 列番号 (A=1) をメモする必要があります。これは、数式 col_index_num値です 。
-
-
新しいテーブルにフィールドを追加するには、手順 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)。
-
必要なすべてのフィールドが表示されるまで、フィールドの追加を続行します。 複数のテーブルを使用するデータ機能を含むブックを準備する場合は、データ機能のデータ ソースを新しいテーブルに変更します。
問題 |
原因 |
---|---|
戻された値が正しくない |
検索の型がTRUE、または指定を省略した場合、左端列を英字または数値順に並べ替えておく必要があります。 左端列が並べ替えられていない場合、想定外の値が戻される可能性があります。 左端列を並べ替えるか、または 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 (無料プレビュー)