20+ Excel 初心者・上級者のための VLOOKUP 使用例
VLOOKUP 関数はExcel で最も人気のある関数の1 つです。本チュートリアルでは、基本から応用まで数十もの使用例をステップ・バイ・ステップで紹介し、Excel での VLOOKUP 関数の使い方をわかりやすく解説します。
目次:
- 2.1 完全一致および近似一致の VLOOKUP
- 2.2 大文字と小文字を区別 VLOOKUP
- 2.3 右から左への VLOOKUP
- 2.4 2 番目、n 番目、または最後に一致する値を VLOOKUP
- 2.5 2 つの指定値または日付の間で VLOOKUP
- 2.6 VLOOKUP 関数で部分一致のためにワイルドカードを使用
- 2.7 別のワークシートから値を VLOOKUP
- 2.8 別のワークブックから値を VLOOKUP
- 2.9 0 や#N/A エラーの代わりに空白または特定のテキストを返すように VLOOKUP
- 3.1 VLOOKUP 関数による2 方向検索(行と列での VLOOKUP)
- 3.2 2 つ以上の条件に基づいて一致する値を VLOOKUP
- 3.3 1 つまたは複数の条件で複数の一致値を返す VLOOKUP
- 3.4 一致セルの行全体またはすべてのデータを返す VLOOKUP
- 3.5 Excel で複数の VLOOKUP 関数(入れ子になった VLOOKUP)を実行
- 3.6 別の列にあるリストデータに基づいて値の存在をチェックする VLOOKUP
- 3.7 行または列ですべての一致値を VLOOKUP して合計
- 3.8 1 つまたは複数のキーカラムに基づいて2 つのテーブルをマージする VLOOKUP
- 3.9 複数のワークシート間で一致する値を VLOOKUP
VLOOKUP サンプルファイルをダウンロード
VLOOKUP 関数の概要 – 構文と引数
Excel では、VLOOKUP 関数は多くのユーザーにとって非常に強力なツールです。この関数は、データ範囲の最も左側の列で値を検索し、以下のスクリーンショットのように、同じ行にある指定した列の一致する値を返します。
VLOOKUP 関数の構文:
引数:
「検索値」(必須):検索したい値を指定します。数値、日付、テキストのいずれか、またはセル参照が使用可能です。ただし、この値は table_array 範囲の最初の列に含まれている必要があります。
「表範囲」(必須):検索値の列と結果値の列を含むデータ範囲またはテーブルです。
「列番号」(必須):返す値が含まれる列の番号です。表範囲の左端の列を1 としてカウントします。
「検索の型」(任意):この VLOOKUP 関数が完全一致か近似一致かを指定する論理値です。
- 「近似一致」 – 1/TRUE/省略(デフォルト):完全一致する値が見つからない場合、数式は検索値以下の最大値(最も近い値)を返します。
- 「完全一致」 – 0/FALSE:検索値と完全に一致する値を検索する際に使用します。完全一致する値が見つからない場合は、エラー値 #N/A が返されます。
関数に関する注意点:
- VLOOKUP 関数は、左から右方向にのみ値を検索します。
- VLOOKUP 関数は、大文字と小文字を区別しない検索を行います。
- 検索値に複数の一致がある場合、VLOOKUP 関数は最初に見つかった値のみを返します。
2.1.1 完全一致の VLOOKUP を実行
通常、VLOOKUP 関数で完全一致を検索するには、最後の引数に FALSE を指定するだけで OK です。
たとえば、特定の ID 番号に基づいて該当する数学の得点を取得するには、次のように操作します。
以下の数式を空白セル(ここでは G2)にコピー&ペーストし、「Enter」キーを押して結果を取得してください。
=VLOOKUP(F2,$A$2:$D$7,3,FALSE)

注:上記の数式には、次の4 つの引数が含まれています。
- 「F2」は、検索したい値「C1005」を含むセルです。
- 「A2:D7」は、検索を実行するためのテーブル配列です。
- 「3」は、一致した値を返す列番号です。(関数が ID C1005 を検出すると、テーブル配列の3 列目に移動し、ID C1005 と同じ行にある値を返します。)
- 「FALSE」は完全一致を示します。
VLOOKUP 数式の動作原理
まず、テーブルの最も左側の列で ID「C1005」を検索します。上から下へと進み、セル A6 で該当する値を見つけます。
値を見つけたら、右に3 列目まで移動し、その列の値を抽出します。
このようにすると、以下のようなスクリーンショットの結果が得られます。
| 🤖 | KUTOOLS AI アシスタント:次に基づいてデータ分析を革新:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート作成| 拡張機能呼び出し… |
| 人気機能:検索、ハイライト、または重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセル | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シート間 VLookup | ファジーマッチ... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択ドロップダウンリスト... | |
| 列マネージャー:指定した数の列を追加 | 列を移動 | 非表示の列を再表示 | 範囲と列を比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ | 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字/斜体などによる) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+グラフ種類(ガントチャート、...)| 40+ 実用的数式(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)| さらに多数... |
Kutools for Excel は300 以上の機能を搭載、必要な機能がワンクリックで利用可能…
2.1.2 近似一致による VLOOKUP を実行する
近似一致は、検索値の範囲内を検索する際に非常に便利です。完全一致が見つからない場合、VLOOKUP の近似一致は検索値よりも小さい値の中で最大のものを返します。
たとえば、次のようなデータ範囲がある場合、「注文」列に指定された注文が存在しないとき、B 列から最も近い「割引率」をどのように取得すればよいでしょうか?
手順1:VLOOKUP 数式を適用し、他のセルにも入力する
結果を表示したいセルに以下の数式をコピー&ペーストし、フィルハンドルを下にドラッグして他のセルにも適用してください。
=VLOOKUP(D2,$A$2:$B$9,2,TRUE)
結果:
これで、指定された値に基づく近似一致の結果が得られました。スクリーンショットをご確認ください。
注:
- 上記の数式において:
- 「D2」は、関連情報を取得したいセルです。
- 「A2:B9」がデータ範囲です。
- 「2」は、一致した値を返す列の番号を示します。
- 「TRUE」は近似一致を表します。
- 近似一致は、完全一致が見つからない場合、指定された検索値以下で最も大きな値を返します。
- VLOOKUP 関数で近似一致の値を取得するには、データ範囲の左端列をあらかじめ昇順に並べ替えておく必要があります。そうでないと、誤った結果が返されるおそれがあります。
2.2 Excel で大文字小文字を区別する VLOOKUP を実行する
既定では、VLOOKUP 関数は大文字と小文字を区別せず、同一視して検索を行います。ただし、Excel で大文字小文字を厳密に区別した検索が必要になる場合もあります。そのようなケースでは、通常の VLOOKUP 関数では対応できません。代わりに、EXACT 関数と組み合わせた INDEX 関数および MATCH 関数、または LOOKUP 関数と EXACT 関数をご利用ください。
たとえば、次のようなデータ範囲があり、ID 列にはすべて大文字または小文字の文字列が含まれており、その中から指定した ID に一致するものでフィルタリングしたいとします。このとき、対応する数学のスコアを取得したいとします。
手順1:いずれかの数式を適用し、他のセルにも入力する
結果を取得したい空白セルに、以下の数式のいずれかをコピー&ペーストしてください。その後、そのセルを選択し、フィルハンドルを下にドラッグして、必要なセルに数式をコピーします。
数式1:数式を貼り付けたら、「Ctrl」+「Shift」+「Enter」を押してください。
=INDEX($C$2:$C$10,MATCH(TRUE,EXACT(F2,$A$2:$A$10),0))
数式2:数式を貼り付けたら、「Enter」キーを押してください。
=LOOKUP(2,1/EXACT(F2,$A$2:$A$10),$C$2:$C$10)
結果:
これで、必要な正しい結果が得られます。スクリーンショットをご確認ください。
注:
- 上記の数式において:
- 「A2:A10」は、検索対象の特定の値が含まれる列です。
- 「F2」は検索値です。
- 「C2:C10」は、結果を返す対象の列です。
- 複数の一致が見つかった場合、この数式は常に最後に見つかった一致を返します。
2.3 Excel で右から左への VLOOKUP を行う
VLOOKUP 関数は常にデータ範囲の左端列で値を検索し、その右側の列から対応する値を返します。逆方向の VLOOKUP(右側の列で特定の値を検索して、最も左の列にある対応する値を取得する)を実行したい場合は、以下のスクリーンショットのようになります。
このタスクの詳細な手順については、ここをクリックしてご確認ください…

2.4 Excel で2 番目、n 番目、または最後の一致値を VLOOKUP する
通常、VLOOKUP 関数では複数の一致値が見つかった場合でも、最初に一致したレコードのみが返されます。本項では、データ範囲内で2 番目、n 番目、または最後の一致値を取得する方法をご紹介します。
2.4.1 VLOOKUP で2 番目または n 番目の一致値を返す
たとえば、A 列に顧客名、B 列に購入したトレーニングコースが記録されているとします。このとき、特定の顧客が2 番目または n 番目に購入したトレーニングコースを検索したい場合があります。スクリーンショットをご確認ください。
このタスクは VLOOKUP 関数では直接解決できませんが、代わりに INDEX 関数をご利用いただけます。
手順1:数式を適用し、他のセルにも入力する
たとえば、指定された条件に基づいて2 番目の一致値を取得するには、空白セルに以下の数式を入力し、「Ctrl」+「Shift」+「Enter」キーを同時に押して最初の結果を取得してください。その後、その数式が入力されたセルを選択し、フィルハンドルを下にドラッグして必要なセルに数式をコピーします。
=INDEX($B$2:$B$14,SMALL(IF(E2=$A$2:$A$14,ROW($A$2:$A$14)-ROW($A$2)+1),2))
結果:
これで、指定された名前に基づくすべての2 番目の一致値が一括で表示されました。
注:上記の数式では、
- 「A2:A14」は、検索に使用するすべての値の範囲です。
- 「B2:B14」は、取得したい一致値の範囲です。
- 「E2」は検索値です。
- 「2」は、取得したい2 番目の一致値を示しています。3 番目の一致値を返すには、この数値を3 に変更するだけです。
2.4.2 VLOOKUP で最後の一致値を返す
以下のスクリーンショットのように、VLOOKUP で最後の一致値を取得したい場合は、最後の一致値を返す VLOOKUPのチュートリアルで詳しい手順をご紹介しています。

2.5 2 つの値または日付の間で一致する値を VLOOKUP する
場合によっては、2 つの値または日付の間で検索値の範囲を指定し、以下のスクリーンショットのように対応する結果を返したいことがあります。そのような場合は、並べ替え済みの表において VLOOKUP 関数の代わりに LOOKUP 関数を使用できます。
2.5.1 数式で2 つの値または日付の間の一致値を VLOOKUP する
手順1:データを整理し、以下の数式を適用する
元の表は、並べ替え済みのデータ範囲である必要があります。その後、以下の数式を空白セルにコピーまたは入力し、フィルハンドルをドラッグして他の必要なセルにも適用してください。
=LOOKUP(2,1/($A$2:$A$6<=E2)/($B$2:$B$6>=E2),$C$2:$C$6)
結果:
これで、指定された値に一致するすべてのレコードを取得できました。スクリーンショットをご確認ください。
注:
- 上記の数式において:
- 「A2:A6」は小さな値の範囲です。
- 「B2:B6」は大きな数値の範囲です。
- 「E2」は、対応する値を取得したい検索キーワードです。
- 「C2:C6」は、対応する値を取得したい列です。
- この数式は、以下のスクリーンショットのように、2 つの日付の間に一致する値を抽出するのにもご利用いただけます。

2.5.2 簡単な機能で2 つの値または日付の間の一致値を VLOOKUP する
上記の数式を覚えて理解するのが難しい場合は、「Kutools for Excel」の簡単なツールがおすすめです。「2 つの値の間のデータを検索」機能を使えば、2 つの値または日付の間に含まれる特定の値や日付に基づいて、対応する項目を簡単に取得できます。
- この機能を有効にするには、「Kutools」>「スーパー LOOKUP」>「2 つの値の間のデータを検索」をクリックしてください。
- 次に、ダイアログボックスでデータに基づいた操作を指定してください。

2.6 VLOOKUP 関数でワイルドカードを使用して部分一致を行う
Excel では、VLOOKUP 関数でワイルドカードを使えば、検索値の一部に一致するデータをテーブルから簡単に見つけて返すことができます。
たとえば、以下のようなスクリーンショットのデータ範囲から、「名」(フルネームではなく)をもとにスコアを抽出したい場合、Excel ではどのように対応すればよいでしょうか?
手順1:数式を適用し、他のセルにも入力する
空白セルに次の数式をコピーまたは入力し、その後、フィルハンドルをドラッグして必要な他のセルにも適用してください。
=VLOOKUP(E2&"*", $A$2:$C$11, 3, FALSE)
結果:
これで、以下のスクリーンショットのように、すべての一致スコアが表示されました。
注:上記の数式では、
- 「E2&”*”」は部分一致の条件です。これは、セル E2 の値で始まる任意の文字列を検索することを意味します。(ワイルドカード「)*」は任意の1 文字または複数の文字を表します)
- 「A2:C11」は、一致する値を検索する対象となるデータ範囲です。
- 「3」は、データ範囲の3 列目にある一致する値を返すことを意味します。
- 「FALSE」は完全一致を示します。(ワイルドカードを使用する際は、VLOOKUP 関数で完全一致モードを有効にするため、関数の最後の引数を FALSE または0 に設定してください。)
- 特定の値で終わる一致値を検索して返すには、その値の前にワイルドカード「*」を置き、次の数式を適用してください。
-
=VLOOKUP("*"&E2, $A$2:$C$11, 3, FALSE)
- テキスト文字列の一部に基づいて一致する値を検索して返すには、指定したテキストが文字列の先頭、末尾、または途中のいずれにあろうとも、セル参照またはテキストの両側をアスタリスク(*)で囲むだけで OK です。以下の式をご利用ください。
-
=VLOOKUP("*"&D2&"*", $A$2:$B$11, 2, FALSE)
2.7 別のワークシートから値を VLOOKUP する
通常、複数のワークシートを扱う必要がある場合がありますが、VLOOKUP 関数を使えば、別のシートからも1 つのワークシート上と同様にデータを検索できます。
たとえば、以下のスクリーンショットのようにワークシートが2 つある場合、指定したワークシートから対応するデータを検索して返すには、次の手順に従ってください。
手順1:数式を適用し、他のセルにも入力する
一致する項目を取得したい空白セルに、以下の数式を入力またはコピーしてください。その後、フィルハンドルを下にドラッグして、この数式を適用したいセルまで伸ばします。
=VLOOKUP(A2,'Data sheet'!$A$2:$C$15,3,0)
結果:
期待どおりの結果が得られました。スクリーンショットをご確認ください。
![]() | ![]() | ![]() |
注:上記の数式では、
- 「A2」は検索値を示します。
- 「『Data sheet』!A2:C15」は、ワークシート名「Data sheet」の範囲 A2:C15 内から値を検索することを示します。(シート名にスペースや句読点が含まれる場合は、シート名を一重引用符で囲んでください。そうでない場合は、次のように直接シート名を使用できます。)
=VLOOKUP(A2,Datasheet!$A$2:$C$15,3,0))。 - 「3」は、返したい一致データが含まれる列の番号です。
- 「0」は完全一致を実行することを意味します。
2.8 別のブックから値を VLOOKUP する
本項では、VLOOKUP 関数を使って別のブックから一致する値を検索し、その結果を返す方法をご紹介します。
たとえば、2 つのブックがあるとします。1 つ目のブックには製品リストとそれぞれのコストが含まれており、2 つ目のブックでは、以下のスクリーンショットのように各製品項目に対応するコストを抽出したいとします。
手順1:数式を適用する
使用する両方のブックを開き、2 番目のブックで結果を表示したいセルに次の数式を入力してください。その後、この数式を必要な他のセルにドラッグしてコピーします。
=VLOOKUP(B2,'[Product list.xlsx]Sheet1'!$A$2:$B$6,2,0)
結果:

注:
- 上記の数式において:
- 「B2」は検索値を示します。
- 「『[Product list.xlsx]Sheet1』!A2:B6」は、「Product list」というワークブックの「Sheet1」シートにあるセル範囲 A2:B6 を検索対象とすることを示します。(ワークブック名は角括弧[]で囲み、ワークブック名とシート名の全体は一重引用符で囲みます。)
- 「2」は、取得したい一致データが含まれる列番号です。
- 「0」は完全一致を返すことを示します。
- 検索対象のワークブックが閉じられている場合、そのワークブックへの完全なファイルパスが、以下のスクリーンショットのように数式内に表示されます。

2.9 0 または#N/A エラーの代わりに空白または特定のテキストを返す
通常、VLOOKUP 関数で対応する値を返す際、一致セルが空白だと「0」が返されます。また、一致する値が見つからない場合は、以下のスクリーンショットのように「#N/A」エラーが表示されます。こうした「0」や「#N/A」の代わりに、空白セルや任意の値を表示したい場合は、0 または N/A の代わりに空白または特定の値を返す VLOOKUPのチュートリアルがお役に立ちます。

3.1 双方向検索(行と列での VLOOKUP)
場合によっては、行と列の両方で同時に値を検索する「2 次元検索」が必要になることがあります。たとえば、以下のデータ範囲から、特定の四半期における特定の製品の値を取得したいとします。ここでは、Excel でこの作業を実現するための数式をご紹介します。
Excel では、VLOOKUP 関数と MATCH 関数を組み合わせることで、2 次元検索(ツーウェイ・ルックアップ)を実現できます。
以下の数式を空白セルに入力し、「Enter」キーを押して結果を取得してください。
=VLOOKUP(G2, $A$2:$E$7, MATCH(H1, $A$2:$E$2, 0), FALSE)

注: 上記の数式では、
- 「G2」は、対応する値を取得したい列内で検索する値です。
- 「A2:E7」は検索元のデータテーブルです。
- 「H1」は、値を取得したい行内で検索する値です。
- 「A2:E2」は列の見出しとなるセル範囲です。
- 「FALSE」は完全一致を取得することを示します。
3.2.1 数式を使用した2 つ以上の条件に基づく VLOOKUP による一致値の検索
このような場合、Excel の LOOKUP 関数や MATCH 関数と INDEX 関数を組み合わせれば、この作業を素早く簡単に解決できます。
たとえば、次のようなデータテーブルがあり、特定の商品とサイズに基づいて該当する価格を取得したい場合、以下の数式が役立ちます。
手順 1:以下のいずれかの数式を適用します
数式 1:次の数式を入力して、「Enter」キーを押してください。
=LOOKUP(2,1/($A$2:$A$12=G1)/($B$2:$B$12=G2),($D$2:$D$12))
数式 2:次の数式を入力し、「Ctrl」+「Shift」+「Enter」を同時に押してください。
=INDEX($D$2:$D$12,MATCH(1,($A$2:$A$12=G1)*($B$2:$B$12=G2),0))
結果:

注:
- 上記の数式において:
- 「A2:A12=G1」は、範囲 A2:A12 の中から G1 の条件に一致するものを検索することを意味します。
- 「B2:B12=G2」は、範囲 B2:B12 内で G2 の条件を検索することを意味します。
- 「D2:D12」は、 対応する値を返す範囲です。
- 条件が2 つ以上ある場合は、他の条件を数式に組み込むだけで済みます。例:
=LOOKUP(2,1/($A$2:$A$12=G1)/($B$2:$B$12=G2)/($C$2:$C$12=G3),($D$2:$D$12))=INDEX($D$2:$D$12,MATCH(1,($A$2:$A$12=G1)*($B$2:$B$12=G2)*($C$2:$C$12=G3),0)) 
3.2.2 Kutools for Excel を使用した2 つ以上の条件に基づく VLOOKUP による一致値の検索
上記のような複雑な数式を繰り返し適用するのは難しく、作業効率が低下する可能性があります。しかし、「Kutools for Excel」には「検索 - 複数条件検索」という機能があり、わずか数回のクリックで1 つまたは複数の条件に基づいて対応する結果をすばやく取得できます。
- この機能を有効にするには、「Kutools」>「スーパー LOOKUP」>「検索 - 複数条件検索」をクリックしてください。
- 次に、ダイアログボックスでデータに基づき操作を指定してください。

3.3 1 つまたは複数の条件に基づく VLOOKUP による複数値の返却
Excel では、VLOOKUP 関数は値を検索し、複数の該当値が見つかった場合でも最初に一致した値のみを返します。ただし、状況によっては、対応するすべての値を行内、列内、または1 つのセル内に表示したいことがあります。本セクションでは、ワークブック内で1 つまたは複数の条件に基づいて複数の一致値を取得する方法をご紹介します。
3.3.1 1 つまたは複数の条件に基づくすべての一致値を横方向に VLOOKUP
A1:C14 の範囲に国、都市、名前を含むデータテーブルがあり、「US」出身のすべての名前を下記スクリーンショットのように横方向に表示したいとします。このタスクを解決するには、こちらをクリックして、ステップバイステップで結果を取得してください。。

3.3.2 1 つまたは複数の条件に基づくすべての一致値を縦方向に VLOOKUP
下記スクリーンショットのように、特定の条件に基づいて VLOOKUP を行い、すべての一致値を縦方向に返す必要がある場合は、こちらをクリックして詳細な解決策を確認してください。

3.3.3 1 つまたは複数の条件に基づくすべての一致値を1 つのセルに VLOOKUP
複数の一致値を指定された区切り文字付きで1 つのセルに返したい場合、TEXTJOIN 関数を使えば、この作業を素早く簡単に解決できます。。

注:
- TEXTJOIN 関数は、Excel 2019 およびExcel 365 以降のバージョンでのみご利用いただけます。
- Excel 2016 以前のバージョンをお使いの場合は、以下の記事で紹介しているユーザー定義関数をご利用ください。
- Excel で1 つのセルに複数の値を返す VLOOKUP
3.4 一致セルの行全体を返す VLOOKUP
本セクションでは、VLOOKUP 関数を使って一致する値の行全体を取得する方法をご紹介します。
手順 1:以下の数式を適用します
結果を表示したい空白セルに、以下の数式をコピーまたは入力して「Enter」キーを押してください。その後、行全体のデータが表示されるまで、その数式セルを右方向にドラッグします。
=VLOOKUP($F$2,$A$1:$D$12,COLUMN(A1),FALSE)
結果:
これで、行全体のデータが取得されました。スクリーンショットをご確認ください:
注:上記の数式では、
- 「F2」は、その値に基づいて該当する行全体を返したい検索値です。
- 「A1:D12」は、検索値を探す対象となるデータ範囲です。
- 「A1」は、データ範囲内の先頭列を示す列番号です。
- 「FALSE」は完全一致検索を意味します。
ヒント:
- 一致する値に基づいて複数の行が見つかった場合、すべての該当行を取得するには、以下の数式を入力し、「Ctrl」+「Shift」+「Enter」キーを同時に押して最初の結果を表示してください。その後、フィルハンドルを右にドラッグし、さらにセル範囲全体にわたって下方向にドラッグし続けることで、すべての一致行を取得できます。以下のデモをご覧ください:
=IFERROR(INDEX(A:A,SMALL(IF(ISNUMBER(SEARCH($F$2,$A$2:$A$12)),ROW($A$2:$A$12),""),ROW()-1)),"")
3.5 Excel でのネストされた VLOOKUP
複数のテーブルにまたがって相互に関連付けられた値を検索したい場合、複数の VLOOKUP 関数をネストして、最終的な値を簡単に取得できます。
たとえば、ワークシートに2 つの別々のテーブルがあるとします。1 つ目のテーブルにはすべての商品名と対応する営業担当者が、2 つ目のテーブルには各営業担当者の総売上がそれぞれリストされています。下記スクリーンショットのように各商品の売上を調べたい場合は、VLOOKUP 関数をネストすることでこのタスクを簡単に達成できます。
ネストされた VLOOKUP 関数の汎用的な数式は次のとおりです:
注:
- 「lookup_value」は検索したい値です。
- 「Table_array1」と「Table_array2」は、検索値と返す値を含むテーブルです。
- 「col_index_num1」は、中間共通データを検索する際に使用する最初のテーブル内の列番号を示します。
- 「col_index_num2」は、2 番目のテーブルで一致する値を返す対象となる列の番号を指定します。
- 「0」は完全一致に使用されます。
手順 1:以下の数式を適用し、セルを埋めます
以下の数式を空白セルに入力し、そのセルのフィルハンドルを下方向にドラッグして、適用したいセルまで数式をコピーしてください。
=VLOOKUP(VLOOKUP(G3,$A$3:$B$7,2,0),$D$3:$E$7,2,0)
結果:
これで、下記スクリーンショットのように結果が得られます:
注:上記の数式では、
- 「G3」 には、検索したい値が含まれています。
- 「A3:B7」と「D3:E7」は、検索値と返す値が含まれるテーブル範囲です。
- 「2」は、一致する値を返すための範囲内での列番号です。
- 「0」は VLOOKUP 関数で完全一致を指定することを示します。
3.6 別の列のリストデータに基づいて値の存在を確認
VLOOKUP 関数は、別の列にあるデータリストに基づいて値の存在を確認するのにも役立ちます。たとえば、C 列の名前を検索し、その名前が A 列に存在するかどうかに応じて「Yes」または「No」を返したい場合があります(下記スクリーンショット参照)。
手順 1:以下の数式を適用します
以下の数式を空白セルに入力し、その数式を適用したいセルまでフィルハンドルを下方向にドラッグしてください。
=IF(ISNA(VLOOKUP(C2,$A$2:$A$10,1,FALSE)), "No", "Yes")
結果:
これで、必要な結果が得られます。スクリーンショットをご確認ください:
注:上記の数式では、
- 「C2」は検索したい値です。
- 「A2:A10」は、検索値の範囲が見つかるかどうかを確認するためのリスト範囲です。
- 「FALSE」は完全一致を取得することを示します。
3.7 行または列内のすべての一致値を VLOOKUP して合計
数値データを扱う際、テーブルから一致する値を抽出し、複数の列または行の数値を合計しなければならない場面がよくあります。本セクションでは、こうしたタスクを効率的にこなすのに役立つ数式をいくつかご紹介します。
3.7.1 行または複数の行内のすべての一致値を VLOOKUP して合計
下記のスクリーンショットのように、複数か月分の売上データを含む商品リストがあるとします。このとき、指定された商品について全期間の注文数を合計する必要があります。
手順 1:以下の数式を適用します
以下の数式を空白セルにコピーまたは入力し、「Ctrl」+「Shift」+「Enter」キーを同時に押して、最初の結果を取得してください。その後、必要な他のセルにこの数式をコピーするには、フィルハンドルを下方向にドラッグします。
=SUM(VLOOKUP(H2, $A$2:$F$9, {2,3,4,5,6}, FALSE))

結果:
最初に一致した値に対応する行内のすべての値が合計されました。スクリーンショットをご確認ください:
注:上記の数式では、
- 「H2」は、検索したい値が含まれるセルです。
- 「A2:F9」は、検索値と一致するデータを含む範囲(列見出しを除く)です。
- 「{2,3,4,5,6}」は、範囲の合計を計算する際に使用する列番号です。
- 「FALSE」は完全一致を示します。
ヒント:複数の行に含まれるすべての一致値を合計するには、次の数式をご利用ください。
-
=SUMPRODUCT(($A$2:$A$9=H2)*$B$2:$F$9) 
3.7.2 列または複数の列内のすべての一致値を VLOOKUP して合計
下記のスクリーンショットのように、特定の月の合計値を求めたい場合、通常の VLOOKUP 関数では対応できません。このようなケースでは、SUM 関数、INDEX 関数、MATCH 関数を組み合わせて数式を作成する必要があります。
手順 1:以下の数式を適用します
空白セルに以下の数式を入力し、フィルハンドルを下方向にドラッグして他のセルにコピーしてください。
=SUM(INDEX($B$2:$F$9,0,MATCH(H2,$B$1:$F$1,0)))
結果:
これで、指定した月に基づく列内の最初の一致値が合計されました。スクリーンショットをご確認ください。
注:上記の数式では、
- 「H2」は、検索したい値が含まれるセルです。
- 「B1:F1」は、検索値を含む列の見出しです。
- 「B2:F9」は、合計したい数値が含まれるデータ範囲です。
ヒント:複数の列にあるすべての一致値を VLOOKUP で検索し、合計するには、次の数式をご利用ください。
-
=SUMPRODUCT($B$2:$F$9*(($B$1:$F$1)=H2)) 
3.7.3 Kutools for Excel を使用した最初の一致値またはすべての一致値の VLOOKUP と合計
上記の数式が覚えにくいと感じる方は、「Kutools for Excel」の強力な機能「検索と合計」をぜひご活用ください。この機能を使えば、行または列内の最初の一致値、あるいはすべての一致値を VLOOKUP で簡単に合計できます。
- この機能を有効にするには、「Kutools」>「スーパー LOOKUP」>「検索と合計」をクリックしてください。
- 次に、ダイアログボックスでニーズに応じた操作を指定してください。
3.7.4 行と列の両方で一致するすべての値を VLOOKUP して合計
列と行の両方に一致する値を合計したい場合、たとえば下記スクリーンショットのように、「Sweater」の3 月(Mar)分の合計値を取得したいとします。
このような場合は、SUMPRODUCT 関数を使ってこのタスクを簡単に達成できます。
以下の数式をセルに適用し、「Enter」キーを押して結果を取得してください。スクリーンショットをご参照ください。
=SUMPRODUCT(($B$2:$F$9)*($B$1:$F$1=I2)*($A$2:$A$9=H2))

注:上記の数式では、
- 「B2:F9」は、合計したい数値が含まれるデータ範囲です。
- 「B1:F1」は、合計の基準となる検索値を含む列見出しです。
- 「I2」は、列見出し内を検索する際の検索値です。
- 「A2:A9」は、合計の基準となる検索値を含む行見出しです。
- 「H2」は、行見出し内から検索したい値です。
3.8 キーカラムに基づいて2 つのテーブルをマージする VLOOKUP
日常業務でデータを分析する際、1 つまたは複数のキーカラムに基づいて必要な情報を単一のテーブルに集約したい場合があります。そんなときは、VLOOKUP 関数ではなく、INDEX 関数と MATCH 関数を組み合わせて活用しましょう。
3.8.1 1 つのキーカラムに基づいて2 つのテーブルをマージする VLOOKUP
たとえば、1 つ目のテーブルに商品とその名前が、2 つ目のテーブルに商品と注文データがそれぞれ含まれているとします。このような場合、共通の「商品」列をキーとして、2 つのテーブルを1 つに結合できます。
手順 1:以下の数式を適用します
以下の数式を空白セルに適用し、その後、フィルハンドルを下方向にドラッグしてこの数式を適用したいセルまで伸ばしてください。
=INDEX($F$2:$F$8, MATCH($A2, $E$2:$E$8, 0))
結果:
これにより、キーカラムのデータに基づいて注文列が最初のテーブルに結合された、マージ済みのテーブルが得られます。
注:上記の数式では、
- 「A2」は検索対象の値です。
- 「F2:F8」は、一致する値を返したいデータ範囲です。
- 「E2:E8」は検索値を含む検索範囲です。
3.8.2 複数のキーカラムに基づいて2 つのテーブルをマージする VLOOKUP
結合したい2 つのテーブルに複数のキーカラムがある場合は、これらの共通列を基にテーブルをマージするため、以下の手順に従ってください。
一般的な数式は次のとおりです:
注:
- 「lookup_table」は、検索データとその一致レコードを含むデータ範囲です。
- 「lookup_value1」は、第1 の検索条件です。
- 「lookup_range1」は、第1 条件を含むデータリストです。
- 「lookup_value2」は、2 つ目の検索条件です。
- 「lookup_range2」は、第2 の条件を含むデータリストです。
- 「return_column_number」は、lookup_table 内で一致する値を返す対象となる列番号を指定します。
手順1:次の数式を適用します
結果を表示したい空白セルに以下の数式を入力し、「Ctrl」+「Shift」+「Enter」を同時に押して、最初の一致値を取得してください(スクリーンショット参照)。
=INDEX($E$2:$G$9, MATCH(1, ($A2=$E$2:$E$9) * ($B2=$F$2:$F$9), 0), 3)

手順2:数式を他のセルにコピーします
次に、最初の数式が入力されたセルを選択し、必要に応じてフィルハンドルをドラッグしてこの数式を他のセルにコピーします:
3.9 複数のワークシート間で VLOOKUP を使用して値を照合
Excel で複数のワークシートをまたいで VLOOKUP を使ったことはありますか?たとえば、データ範囲を含む3 つのワークシートがあり、これらのシートから条件に基づいて特定の値を取得したい場合、ステップバイステップのチュートリアル複数のワークシート間での VLOOKUP による値の取得に従えば、このタスクを簡単に完了できます。

VLOOKUP で照合された値のセル書式を保持
照合値を検索する際、フォント色や背景色、データ形式など、元のセルの書式は保持されません。セルまたはデータの書式を維持したい場合は、このセクションでその課題を解決するためのテクニックをいくつかご紹介します。
4.1 VLOOKUP で照合値を取得し、セルの色やフォント書式を保持
ご存知のとおり、通常の VLOOKUP 関数では、別のデータ範囲から照合値そのもののみを取得できます。しかし、塗りつぶし色やフォント色、フォントスタイルなどのセルの書式もそのまま引き継いで対応する値を取得したい場合もあるでしょう。このセクションでは、Excel で照合値を取得する際に、元の書式をそのまま保持する方法をご紹介します。
以下の手順に従って、セル書式を含めた対応する値を検索・返してください:
手順1:コード1 をシートのコードモジュールにコピーします
- VLOOKUP したいデータを含むワークシートで、シートタブを右クリックし、コンテキストメニューから「コードの表示」を選択してください(下図参照)。

- 開いている「Microsoft Visual Basic for Applications」ウィンドウに、以下の VBA コードをコードウィンドウへコピーしてください。
- VBA コード 1:検索値とともにセルの書式を取得する VLOOKUP
Sub Worksheet_Change(ByVal Target As Range) 'Updateby Extendoffice Dim I As Long Dim xKeys As Long Dim xDicStr As String On Error Resume Next Application.ScreenUpdating = False xKeys = UBound(xDic.Keys) If xKeys >= 0 Then For I = 0 To UBound(xDic.Keys) xDicStr = xDic.Items(I) If xDicStr <> "" Then Range(xDic.Keys(I)).Interior.Color = _ Range(xDic.Items(I)).Interior.Color Range(xDic.Keys(I)).Font.FontStyle = _ Range(xDic.Items(I)).Font.FontStyle Range(xDic.Keys(I)).Font.Size = _ Range(xDic.Items(I)).Font.Size Range(xDic.Keys(I)).Font.Color = _ Range(xDic.Items(I)).Font.Color Range(xDic.Keys(I)).Font.Name = _ Range(xDic.Items(I)).Font.Name Range(xDic.Keys(I)).Font.Underline = _ Range(xDic.Items(I)).Font.Underline Else Range(xDic.Keys(I)).Interior.Color = xlNone End If Next Set xDic = Nothing End If Application.ScreenUpdating = True End Sub
手順2:コード2 をモジュールウィンドウにコピーします
- 引き続き、「Microsoft Visual Basic for Applications」ウィンドウで[挿入]>[標準モジュール]をクリックし、以下の VBA コード2 を「モジュール」ウィンドウにコピーしてください。
- VBA コード 2:検索値とともにセルの書式を取得する VLOOKUP
-
Public xDic As New Dictionary Function LookupKeepFormat (ByRef FndValue, ByRef LookupRng As Range, ByRef xCol As Long) Dim xFindCell As Range On Error Resume Next Set xFindCell = LookupRng.Find(FndValue, , xlValues, xlWhole) If xFindCell Is Nothing Then LookupKeepFormat = "" xDic.Add Application.Caller.Address, "" Else LookupKeepFormat = xFindCell.Offset(0, xCol - 1).Value xDic.Add Application.Caller.Address, xFindCell.Offset(0, xCol - 1).Address End If End Function 
手順3:VBA プロジェクトのオプションを選択します
- 上記のコードを挿入したら、「Microsoft Visual Basic for Applications」ウィンドウで[ツール]>[参照設定]をクリックし、「参照設定 – VBAProject」ダイアログボックスで「Microsoft Scripting Runtime」のチェックボックスをオンにしてください。下図をご参照ください。



- 次に、「OK」をクリックしてダイアログボックスを閉じ、コードウィンドウを保存して閉じます。
手順4:結果を取得するための数式を入力します
- これでワークシートに戻り、次の数式を適用してください。その後、フィルハンドルを下にドラッグすれば、書式付きですべての結果が得られます。下図をご参照ください。
=LookupKeepFormat(E2,$A$1:$C$10,3)
注:上記の数式では、
- 「E2」は検索対象の値です。
- 「A1:C10」がテーブル範囲です。
- 「3」は、一致する値を取得したいテーブル内の列番号です。
4.2 VLOOKUP で返す値の日付形式を保持
VLOOKUP 関数を使って日付形式の値を検索・返す際、結果が数値として表示されることがあります。日付形式を正しく保持するには、VLOOKUP 関数を TEXT 関数で囲んでください。
手順1:次の数式を適用します
空白セルに次の数式を入力し、フィルハンドルをドラッグして他のセルにも適用してください。
=TEXT(VLOOKUP(E2,$A$2:$C$9,3,FALSE),"mm/dd/yyyy")
結果:
下のスクリーンショットのように、すべての一致した日付が返されました:
注:上記の数式では、
- 「E2」は検索値です。
- 「A2:C9」が検索範囲です。
- 「3」は値を取得したい列の番号です。
- 「FALSE」は完全一致を取得することを示します。
- 「mm/dd/yyyy」は維持したい日付形式です。
4.3 VLOOKUP からコメントを返す
下のスクリーンショットのように、Excel で VLOOKUP を使って照合セルのデータとその関連コメントの両方を取得したことはありますか?もしそうなら、以下に示すユーザー定義関数がこの作業を簡単に完了するのに役立ちます。
手順1:コードをモジュールにコピーします
- 「ALT」+「F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。
- 「挿入」>「標準モジュール」をクリックし、次のコードを「モジュール」ウィンドウにコピー&ペーストします。
VBA コード:コメント付きで一致値を返す VLOOKUP:Function VlookupComment(LookVal As Variant, FTable As Range, FColumn As Long, FType As Long) As Variant 'Updateby Extendoffice Application.Volatile Dim xRet As Variant 'could be an error Dim xCell As Range xRet = Application.Match(LookVal, FTable.Columns(1), FType) If IsError(xRet) Then VlookupComment = "Not Found" Else Set xCell = FTable.Columns(FColumn).Cells(1)(xRet) VlookupComment = xCell.Value With Application.Caller If Not .Comment Is Nothing Then .Comment.Delete End If If Not xCell.Comment Is Nothing Then .AddComment xCell.Comment.Text End If End With End If End Function - 次に、コードウィンドウを保存して閉じます。
手順2:結果を取得するための数式を入力します
- 次に、以下の数式を入力し、フィルハンドルをドラッグして他のセルにもコピーしてください。これにより、一致値とコメントの両方が同時に返されます。下図をご参照ください。
=vlookupcomment(D2,$A$2:$B$9,2,FALSE)
注:上記の数式では、
- 「D2」は、対応する値を取得したい検索値です。
- 「A2:B9」が使用したいデータテーブルです。
- 「2」は、取得したい一致値が含まれる列の番号です。
- 「FALSE」は完全一致を取得することを示します。
4.4 テキストとして保存された数値を VLOOKUP で検索
たとえば、元のテーブルの ID 番号が数値形式で、検索セルの ID 番号がテキストとして保存されている場合、通常の VLOOKUP 関数を使うと#N/A エラーが発生することがあります。このようなケースでは、正しい情報を確実に取得するために、VLOOKUP 関数の中に TEXT 関数や VALUE 関数を組み合わせて使用できます。その具体的な数式は次のとおりです:
手順1:次の数式を適用してコピーします
以下の数式を空白セルに入力し、フィルハンドルを下にドラッグして数式をコピーしてください。
=IFERROR(VLOOKUP(VALUE(D2),$A$2:$B$8,2,0),VLOOKUP(TEXT(D2,0),$A$2:$B$8,2,0))
結果:
これで、下のスクリーンショットのように正しい結果が得られます:
注:
- 上記の数式において:
- 「D2」は、対応する値を取得したい検索値です。
- 「A2:B8」は、ご利用いただきたいデータテーブルです。
- 「2」は、取得したい一致値が含まれる列の番号です。
- 「0」は完全一致を取得することを示します。
- この数式は、数値とテキストの位置が不明な場合にも非常に効果的です。
最高のオフィス業務効率化ツール
| 🤖 | KUTOOLS AI アシスト:データ分析を次に基づいて革新:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気機能:検索・ハイライトまたは重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセル | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シートにわたる VLookup | ファジーマッチ.... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト.... | |
| 列マネージャー:特定の数の列を追加|列の移動|非表示列の表示状態を切り替え|範囲と列を比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/イタリック/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+チャートタイプ(ガントチャート、...)| 40+実用的数式(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)|。。。他にも多数 |
Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、作業時間を大幅に短縮する300 以上の高度な機能を提供します。今すぐ最も必要な機能を手に入れましょう…
Office Tab が Office にタブインターフェースを導入し、作業を大幅に簡単にします
- Word、Excel、PowerPoint でタブを使った編集と閲覧を有効化。Publisher、Access、Visio、Project でもご利用いただけます。
- 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
- 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!
Kutools アドイン全製品を1 つのインストーラーで。
Kutools for Officeスイートには、Excel、Word、Outlook、PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリケーションを横断して作業するチームに最適です。
- オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
- 1 つのインストーラー、1 つのライセンス— 数分でセットアップ完了(MSI 対応)
- 連携でさらにパワーアップ— Office アプリケーション全体で生産性を最適化
- 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
- ベストバリュー— 個別購入よりお得
目次
- 1.VLOOKUP 関数の概要
- 2.VLOOKUP の基本的な使用例
- 2.1 完全一致と近似一致の VLOOKUP
- 完全一致
- 近似一致
- 2.2 大文字と小文字を区別 VLOOKUP
- 2.3 右から左への VLOOKUP
- 2.42 番目、N 番目、または最後の一致値の VLOOKUP
- 2 番目または N 番目の一致値
- 最後の一致値
- 2.52 つの値の間での VLOOKUP
- 数式を使用する方法
- 便利な機能「Kutools」を使用する方法
- 2.6 部分一致の VLOOKUP
- 2.7 別のワークシートから VLOOKUP
- 2.8 別のブックから VLOOKUP
- 2.90 または#N/A エラー値を VLOOKUP で修正
- 3。高度な VLOOKUP の活用例
- 3.1 双方向検索
- 3.2 複数の条件に基づく VLOOKUP
- 数式を使用して
- スマート機能「Kutools」を使用して
- 3.3 複数の一致値を VLOOKUP
- 返す値横方向に
- 返す値縦方向に
- 返す値1 つのセルに
- 3.4VLOOKUP 行全体
- 3.5 入れ子になった VLOOKUP
- 3.6 値が存在するかどうかを確認
- 3.7VLOOKUP と合計
- 行内
- 列内
- 強力な機能「Kutools」を使用して
- 行と列の両方で
- 3.82 つのテーブルをマージするための VLOOKUP
- 1 つのキーカラムで
- 複数のキーカラムで
- 3.9 複数のワークシート間で VLOOKUP
- 4。VLOOKUP でセルの書式をそのまま保持
- 4.1 色とフォントの書式を保持
- 4.2 日付形式を保持
- 4.3コメントを保持
- 4.4テキストとして保存された数値
- 最高のオフィス業務効率化ツール

















