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

Excel の初心者および上級ユーザー向けの 20 以上の VLOOKUP の例

VLOOKUP 関数は Excel で最もよく使われる関数の XNUMX つです。 このチュートリアルでは、Excel で VLOOKUP 関数を使用する方法を、数十の基本的な例と高度な例とともに段階的に紹介します。


VLOOKUPサンプルファイルをダウンロードする

 基本的な Vlookup の例   |    高度な Vlookup の例   |    Vlookup でセルの書式を維持する


VLOOKUP関数の紹介–構文と引数

Excel の VLOOKUP 関数は、ほとんどの Excel ユーザーにとって強力な関数です。次のスクリーンショットに示すように、データ範囲の左端の値を検索し、指定した列から同じ行に一致する値を返すことができます。 。

VLOOKUP関数の構文:

=VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])

引数:

参照値 (必須): 検索する値。 値 (数値、日付、またはテキスト) またはセル参照を指定できます。 これは、table_array 範囲の最初の列になければなりません。 

テーブル・アレイ (必須): ルックアップ値列と結果値列が配置されるデータ範囲またはテーブル。

Col_index_num (必須): 戻り値を含む列番号。 テーブル配列の左端の列から 1 から始まります。

範囲検索 (オプション): この VLOOKUP 関数が完全一致を返すか、近似一致を返すかを決定する論理値。

  • おおよその一致 – 1 / TRUE / 省略 (デフォルト): 完全に一致するものが見つからない場合、数式は最も近い一致、つまり検索値より小さい最大値を検索します。
    通知: この場合、ルックアップ列 (データ範囲の左端の列) を昇順で並べ替える必要があります。そうしないと、間違った結果または #N/A エラーの結果が返されます。
  • 完全一致 - 0 / FALSE:これは、ルックアップ値と正確に等しい値を検索するために使用されます。 完全に一致するものが見つからない場合は、エラー値#N / Aが返されます。

機能上の注意:

  • Vlookup 関数は、左から右への値のみを検索します。
  • Vlookup 関数は、大文字と小文字を区別しない検索を実行します。
  • ルックアップ値に基づいて一致する値が複数ある場合、Vlookup 関数を使用すると、最初に一致した値のみが返されます。

基本的なVLOOKUPの例

このセクションでは、頻繁に使用するいくつかの Vlookup 数式について説明します。

2.1 完全一致と近似一致 VLOOKUP

 2.1.1 完全一致 VLOOKUP を実行する

通常、VLOOKUP 関数で完全一致を検索する場合は、最後の引数として FALSE を使用するだけです。

たとえば、特定のID番号に基づいて対応する数学のスコアを取得するには、次のようにします。

以下の数式をコピーして空白セル (ここでは G2 を選択) に貼り付けて、 を押してください。 入力します 結果を得るための鍵:

=VLOOKUP(F2,$A$2:$D$7,3,FALSE)

注: 上記の式には、次の XNUMX つの引数があります。

  • F2 は、検索する値 C1005 を含むセルです。
  • A2:D7 ルックアップを実行するテーブル配列です。
  • 3 一致した値が返される列番号です。 (関数が ID - C1005 を検出すると、テーブル配列の 1005 列目に移動し、ID - CXNUMX と同じ行の値を返します。)
  • 間違った情報 完全一致を指します。

VLOOKUP 式はどのように機能するのでしょうか?

まず、テーブルの左端の列で ID - C1005 を探します。 上から下に向かってセル A6 の値を検索します。

値が見つかるとすぐに、XNUMX 番目の列の右に進み、その値を抽出します。

したがって、以下のスクリーンショットのような結果が得られます。

注: ルックアップ値が左端の列に見つからない場合は、#N/A エラーが返されます。
🤖 Kutools AI アシスタント: 以下に基づいてデータ分析に革命をもたらします。 インテリジェントな実行   |  コードを生成  |  カスタム数式の作成  |  データを分析してグラフを生成する  |  Kutools関数を呼び出す...
人気の機能: 重複を検索、強調表示、または識別する   |  空白行を削除する   |  データを失わずに列またはセルを結合する   |   数式なしのラウンド ...
スーパールックアップ: 複数の基準の VLookup  |   複数の値の VLookup  |   複数のシートにわたる VLookup   |   ファジールックアップ ...
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する   |  依存関係のドロップダウン リスト   |  複数選択のドロップダウンリスト ...
列マネージャー: 特定の数の列を追加する  |  列の移動   |  列の再表示  |  範囲と列の比較 ...
注目の機能: グリッドフォーカス   |  デザインビュー   |   ビッグフォーミュラバー   |  ワークブックとシートマネージャー  |  リソースライブラリ   |  日付ピッカー  |  ワークシートを組み合わせる   |  セルの暗号化/復号化    リストごとにメールを送信する   |  スーパーフィルター   |   特殊フィルター (太字/斜体で...) ...
トップ 15 のツールセット12 テキスト ツール (テキストを追加, 文字を削除する、...)   |   50+ チャート 種類 (ガントチャート、...)   |   40+ 実用的 (誕生日に基づいて年齢を計算する、...)   |   19 挿入 ツール (QRコードを挿入, パスから画像を挿入、...)   |   12 変換 ツール (数字から言葉へ, 通貨の換算、...)   |   7 マージ&スプリット ツール (高度な結合行, 分割セル、...)   |   もっともっと...

Kutools for Excelは300以上の機能を誇ります, 必要なものをワンクリックで手に入れることができます...

 
 2.1.2 近似一致 VLOOKUP を実行する

近似一致は、データ範囲間の値を検索する場合に便利です。 完全に一致するものが見つからない場合、近似 VLOOKUP は検索値より小さい最大値を返します。

たとえば、次のようなデータ範囲があり、指定された注文が Orders 列にない場合、列 B で最も近い割引を取得するにはどうすればよいでしょうか。

ステップ 1: VLOOKUP 数式を適用し、他のセルに入力します。

次の数式をコピーして、結果を入力するセルに貼り付け、塗りつぶしハンドルを下にドラッグして、この数式を他のセルに適用します。

=VLOOKUP(D2,$A$2:$B$9,2,TRUE)

結果:

これで、指定された値に基づいておおよその一致が得られます。スクリーンショットを参照してください。

注意:

  • 上記の式では:
    • D2 相対情報を返したい値です。
    • A2:B9 はデータ範囲です。
    • 2 一致した値が返される列番号を示します。
    • TRUE 近似一致を指します。
  • 完全一致が見つからない場合、近似一致では、特定の検索値より小さい最大値が返されます。
  • VLOOKUP 関数を使用して近似一致値を取得するには、データ範囲の左端の列を昇順で並べ替える必要があります。そうしないと、間違った結果が返されます。

2.2 Excel で大文字と小文字を区別する VLOOKUP を実行する

デフォルトでは、VLOOKUP 関数は大文字と小文字を区別しない検索を実行します。つまり、小文字と大文字が同一のものとして扱われます。 Excel で大文字と小文字を区別した検索を実行する必要がある場合、通常の VLOOKUP 関数では解決できない場合があります。 この場合、INDEX および MATCH などの代替関数と EXACT 関数、または LOOKUP 関数および EXACT 関数を使用できます。

たとえば、次のデータ範囲があり、ID列に大文字または小文字のテキスト文字列が含まれています。ここで、指定されたID番号の対応する数学スコアを返します。

ステップ 1: 任意の数式を XNUMX つ適用し、他のセルに入力します。

以下の数式のいずれかをコピーして、結果を取得したい空のセルに貼り付けてください。 次に、数式セルを選択し、この数式を入力するセルまで塗りつぶしハンドルを下にドラッグします。

フォーミュラ1: 数式を貼り付けた後、 を押してください Ctrl + Shift + Enter キー。

=INDEX($C$2:$C$10,MATCH(TRUE,EXACT(F2,$A$2:$A$10),0))

フォーミュラ2: 数式を貼り付けた後、 を押してください 入力します キー。

=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 で XNUMX 番目、n 番目、または最後に一致する値を VLOOKUP する

通常、Vlookup 関数の使用時に複数の一致する値が見つかった場合、最初に一致したレコードのみが返されます。 このセクションでは、データ範囲内で XNUMX 番目、n 番目、または最後に一致する値を取得する方法について説明します。

 2.4.1 VLOOKUP を実行し、XNUMX 番目または n 番目に一致した値を返す

A 列に名前のリストがあり、その顧客が購入したトレーニング コースが B 列にあるとします。次に、特定の顧客が購入した 2 番目または n 番目のトレーニング コースを検索します。 スクリーンショットを参照してください:

ここで、VLOOKUP 関数はこのタスクを直接解決できない場合があります。 ただし、代わりに INDEX 関数を使用することもできます。

ステップ 1: 数式を他のセルに適用して入力します。

たとえば、指定された基準に基づいて XNUMX 番目に一致する値を取得するには、次の数式を空白のセルに適用し、キーを押します。 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))

結果:

これで、指定された名前に基づいて XNUMX 番目に一致した値がすべて一度に表示されました。

注: 上記の式では:

  • A2:A14 ルックアップのすべての値の範囲です。
  • B2:B14 返される一致する値の範囲です。
  • E2 ルックアップ値です。
  • 2 は取得したい 3 番目に一致した値を示します。XNUMX 番目に一致した値を返すには、これを XNUMX に変更するだけです。
 2.4.2 VLOOKUP を実行し、最後に一致した値を返す

以下のスクリーンショットに示すように、vlookupして最後に一致する値を返したい場合は、これ VLOOKUP して最後に一致した値を返します 最後に一致した値を取得する方法については、チュートリアルを参照してください。


2.5 指定された XNUMX つの値または日付の間の値を照合する VLOOKUP

場合によっては、以下のスクリーンショットに示すように、XNUMX つの値または日付の間で値を検索し、対応する結果を返したい場合があります。 このような場合は、並べ替えられたテーブルで VLOOKUP 関数の代わりに LOOKUP 関数を使用できます。

 2.5.1 数式を使用して、指定された XNUMX つの値または日付間の値を照合する 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 対応する値を返したい列です。
  • この式は、以下のスクリーンショットに示すように、XNUMX つの日付の間で一致する値を抽出するためにも使用できます。
 2.5.2 便利な機能を使用して、指定された XNUMX つの値または日付間の値を照合する VLOOKUP

上記の公式を覚えて理解するのが難しい場合は、ここで簡単なツールを紹介します。 Kutools for Excelそのと XNUMXつの値の間のルックアップ この機能を使用すると、XNUMX つの値または日付の間の特定の値または日付に基づいて、対応する項目を簡単に返すことができます。

  1. クツール > スーパールックアップ > XNUMXつの値の間のルックアップ この機能を有効にします。
  2. 次に、データに基づいてダイアログ ボックスから操作を指定します。
Note: この機能を適用するには、ダウンロードする必要があります 30日間の無料トライアル付きExcel用Kutools 最初に。


2.6 VLOOKUP関数で部分一致にワイルドカードを使用する

Excel では、VLOOKUP 関数内でワイルドカードを使用できます。これにより、ルックアップ値の部分一致を実行できます。 たとえば、VLOOKUP を使用すると、ルックアップ値の一部に基づいてテーブルから一致した値を返すことができます。

以下のスクリーンショットに示すようなデータの範囲があるとすると、今度は、(フルネームではなく)名に基づいてスコアを抽出したいと思います。 このタスクをExcelでどのように解決できますか?

ステップ 1: 数式を他のセルに適用して入力します。

次の数式をコピーするか空のセルに入力し、塗りつぶしハンドルをドラッグしてこの数式を必要な他のセルに入力してください。

=VLOOKUP(E2&"*", $A$2:$C$11, 3, FALSE)

結果:

そして、以下のスクリーンショットに示すように、一致したすべてのスコアが返されます。

注: 上記の式では:

  • E2&” *” 部分計算の基準です。 これは、セル E2 の値で始まる値を探していることを意味します。 (ワイルドカード「*” は任意の XNUMX 文字または任意の文字を示します)
  • A2:C11 一致する値を検索するデータの範囲です。
  • 3 データ範囲の 3 列目から一致する値を返すことを意味します。
  • × は正確な計算を示します。 (ワイルドカードを使用する場合、VLOOKUP 関数の完全一致モードを有効にするために、関数の最後の引数を FALSE または 0 に設定する必要があります。)
ヒント:
  • 特定の値で終わる一致する値を検索して返すには、値の前にワイルドカード「*」を置く必要があります。 次の式を適用してください。
  • =VLOOKUP("*"&E2, $A$2:$C$11, 3, FALSE)

  • 指定したテキストがテキスト文字列の先頭、末尾、または途中にあるかどうかにかかわらず、テキスト文字列の一部に基づいて一致した値を検索して返すには、セル参照またはテキストを XNUMX つのアスタリスク (*) で囲むだけです。両側に。 この式でやってください
  • =VLOOKUP("*"&D2&"*", $A$2:$B$11, 2, FALSE)


2.7 別のワークシートの VLOOKUP 値

通常、複数のワークシートを操作する必要がある場合、VLOOKUP 関数を使用すると、XNUMX つのワークシートと同じように別のシートからデータを検索できます。

たとえば、以下のスクリーンショットに示すようにXNUMXつのワークシートがあり、指定したワークシートから対応するデータを検索して返すには、次の手順を実行してください。

ステップ 1: 数式を他のセルに適用して入力します。

一致した項目を取得したい空のセルに以下の数式を入力またはコピーしてください。 次に、この数式を適用するセルまで塗りつぶしハンドルをドラッグします。

=VLOOKUP(A2,'Data sheet'!$A$2:$C$15,3,0)

結果:

必要に応じて、対応する結果が得られます。スクリーンショットを参照してください。

注: 上記の式では:

  • A2 ルックアップ値を表します。
  • 「データシート」!A2:C15 「データ シート」という名前のワークシート上の範囲 A2:C15 から値を検索することを示します。 (シート名にスペースまたは句読点文字が含まれている場合は、シート名を一重引用符で囲む必要があります。それ以外の場合は、次のようにシート名を直接使用できます。 =VLOOKUP(A2,データシート!$A$2:$C$15,3,0) )。
  • 3 返される一致したデータを含む列番号です。
  • 0 完全一致を実行することを意味します。

2.8 別のブックの VLOOKUP 値

このセクションでは、VLOOKUP 関数を使用した、別のブックからの一致する値の検索と返しについて説明します。

たとえば、XNUMX つのワークブックがあるとします。 最初のワークブックには、製品とそれぞれのコストのリストが含まれています。 XNUMX 番目のワークブックでは、以下のスクリーンショットに示すように、各製品項目に対応するコストを抽出します。

ステップ 1: 数式を適用して入力します

使用する両方のブックを開き、XNUMX 番目のブックの結果を入力するセルに次の数式を適用します。次に、この数式を必要な他のセルにドラッグしてコピーします。

=VLOOKUP(B2,'[Product list.xlsx]Sheet1'!$A$2:$B$6,2,0)

結果:

注意:

  • 上記の式では:
    • B2 ルックアップ値を表します。
    • '[商品リスト.xlsx]シート1'!A2:B6 ワークブックの製品リストから Sheet2 という名前のシート上の範囲 A6:B1 から検索することを示します。 (ワークブックへの参照は角括弧で囲まれ、ワークブックとシート全体は一重引用符で囲まれます。)
    • 2 返される一致したデータを含む列番号です。
    • 0 完全一致を返すことを示します。
  • ルックアップ ワークブックが閉じている場合、次のスクリーンショットに示すように、ルックアップ ワークブックの完全なファイル パスが数式に表示されます。

2.9 0 または #N/A エラーの代わりに空白または特定のテキストを返す

通常、VLOOKUP 関数を使用して対応する値を返す場合、一致するセルが空白の場合は 0 が返されます。また、一致する値が見つからない場合は、次のように #N/A のエラー値が返されます。以下のスクリーンショット。 0 や #N/A の代わりに空白のセルや特定の値を表示したい場合は、 VLOOKUP で 0 または N/A の代わりに空白または特定の値を返す チュートリアルが役立つかもしれません。


高度なVLOOKUPの例

3.1 双方向ルックアップ (行と列の VLOOKUP)

場合によっては、2 次元ルックアップの実行が必要になることがあります。これは、行と列の両方で値を同時に検索することを意味します。 たとえば、次のデータ範囲があり、指定された四半期の特定の製品の値を取得する必要があるとします。 このセクションでは、Excel でこのジョブを処理するための数式を紹介します。

Excel では、VLOOKUP 関数と MATCH 関数を組み合わせて使用​​して、双方向検索を実行できます。

次の数式を空白のセルに入力して、 を押してください。 入力します 結果を得るための鍵。

=VLOOKUP(G2, $A$2:$E$7, MATCH(H1, $A$2:$E$2, 0), FALSE)

注: 上記の式では:

  • G2 対応する値を取得する対象となる列の検索値です。
  • A2:E7 は、参照するデータ テーブルです。
  • H1 は、対応する値を取得する対象となる行の検索値です。
  • A2:E2 列ヘッダーのセルです。
  • 間違った情報 完全一致を取得することを示します。

3.2 XNUMX つ以上の基準に基づく VLOOKUP 一致値

XNUMX つの基準に基づいて一致する値を検索するのは簡単ですが、XNUMX つ以上の基準がある場合はどうすればよいでしょうか?

 3.2.1 数式を使用した XNUMX つ以上の基準に基づく VLOOKUP 一致値

この場合、Excel の LOOKUP 関数、MATCH 関数、および INDEX 関数を使用すると、このジョブを迅速かつ簡単に解決できます。

たとえば、以下のデータテーブルがあります。特定の商品とサイズに基づいて一致した価格を返すには、次の式が役立ちます。

ステップ 1: 任意の XNUMX つの式を適用する

フォーミュラ1: 数式を貼り付けた後、 を押してください 入力します キー。

=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 範囲 A1:A2 で G12 の条件を検索することを意味します。
    • B2:B12 = G2 範囲 B2:B2 で G12 の条件を検索することを意味します。
    • D2:D12 is 対応する値を返したい範囲。
  • 条件が XNUMX つ以上ある場合は、次のように他の条件を式に結合するだけです。
    =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 スマート機能を使用した XNUMX つ以上の条件に基づく VLOOKUP 照合値

繰り返し適用する必要がある上記の複雑な式を覚えるのは難しい場合があり、作業効率が低下する可能性があります。 しかし、 Kutools for Excel 提供しています マルチコンディションルックアップ この機能を使用すると、数回クリックするだけで XNUMX つ以上の条件に基づいて対応する結果を返すことができます。

  1. クツール > スーパールックアップ > マルチコンディションルックアップ この機能を有効にします。
  2. 次に、データに基づいてダイアログ ボックスから操作を指定します。
Note: この機能を適用するには、ダウンロードする必要があります 30日間の無料トライアル付きExcel用Kutools 最初に。


3.3 XNUMX つ以上の条件で複数の値を返す VLOOKUP

Excel では、VLOOKUP 関数は値を検索し、対応する値が複数見つかった場合は最初に一致した値のみを返します。 場合によっては、行、列、または単一セル内の対応するすべての値を返したい場合があります。 このセクションでは、ワークブック内の XNUMX つ以上の条件で複数の一致する値を返す方法について説明します。

 3.3.1 XNUMX つ以上の条件に基づいて一致するすべての値を水平方向に VLOOKUP

A1:C14 の範囲の国、都市、名前を含むデータのテーブルがあると仮定し、以下のスクリーンショットに示すように、「US」からのすべての名前を水平方向に返したいとします。 このタスクを解決するには、次のことを行ってください。 ここをクリックして結果を段階的に確認してください.

 3.3.2 XNUMX つ以上の条件に基づいて一致するすべての値を垂直方向に VLOOKUP

以下のスクリーンショットに示すように、Vlookup を実行して、特定の基準に基づいて一致するすべての値を垂直方向に返す必要がある場合は、 解決策の詳細を確認するにはここをクリックしてください.

 3.3.3 XNUMX つ以上の条件に基づいて一致するすべての値を単一セルに VLOOKUP

Vlookup を実行し、指定された区切り文字を使用して一致した複数の値を XNUMX つのセルに返したい場合は、 TEXTJOIN の新機能は、このジョブを迅速かつ簡単に解決するのに役立ちます。.

注意:

  • TEXTJOIN 関数は、Excel 2019、Excel 365 以降のバージョンでのみ使用できます。
  • Excel 2016 以前のバージョンを使用している場合は、以下の記事のユーザー定義関数を使用してください。
  • ExcelのXNUMXつのセルに複数の値を返すVlookup

3.4 一致したセルの行全体を返す VLOOKUP

このセクションでは、VLOOKUP 関数を使用して、一致した値の行全体を取得する方法について説明します。

ステップ 1: 次の式を適用して記入します。

結果を出力したい空のセルに以下の数式をコピーまたは入力し、 を押してください。 入力します キーを使用して最初の値を取得します。 次に、行全体のデータが表示されるまで、数式セルを右にドラッグします。

=VLOOKUP($F$2,$A$1:$D$12,COLUMN(A1),FALSE)

結果:

これで、行データ全体が返されたことがわかります。 スクリーンショットを参照してください:
ドキュメント vlookup 関数 50 1

注: 上の式では次のようになります。

  • F2 行全体を返す検索値です。
  • A1:D12 ルックアップ値を検索するデータ範囲です。
  • A1 データ範囲内の最初の列番号を示します。
  • 間違った情報 は正確な検索を示します。

ヒント:

  • 一致した値に基づいて複数の行が見つかった場合、対応するすべての行を返すには、以下の式を適用して、 を押してください。 Ctrl + Shift + Enter キーを一緒に押して最初の結果を取得します。 次に、塗りつぶしハンドルを右にドラッグします。 次に、塗りつぶしハンドルをセル全体にドラッグして、一致する行をすべて取得します。 以下のデモをご覧ください。
    =IFERROR(INDEX(A:A,SMALL(IF(ISNUMBER(SEARCH($F$2,$A$2:$A$12)),ROW($A$2:$A$12),""),ROW()-1)),"")
    ドキュメント vlookup 関数 51 2

3.5 Excel の入れ子になった VLOOKUP

場合によっては、複数のテーブルにわたって相互リンクされている値を検索する必要があるかもしれません。 この場合、複数の VLOOKUP 関数をネストして最終値を取得できます。

たとえば、XNUMX つの別々のテーブルを含むワークシートがあるとします。 最初の表には、すべての製品名とそれに対応するセールスマンがリストされています。 XNUMX 番目の表には、各営業マンの合計売上がリストされています。 ここで、次のスクリーンショットに示すように、各製品の売上を調べたい場合は、VLOOKUP 関数をネストしてこのタスクを実行できます。
ドキュメント vlookup 関数 53 1

ネストされた VLOOKUP 関数の一般的な式は次のとおりです。

=VLOOKUP(VLOOKUP(lookup_value, table_array1, col_index_num1, 0), table_array2, col_index_num2, 0)

注:

  • 参照値 あなたが探している価値です。
  • テーブル配列1, テーブル配列2 ルックアップ値と戻り値が存在するテーブルです。
  • Col_index_num1 中間共通データを見つけるための最初のテーブルの列番号を示します。
  • Col_index_num2 一致する値を返す XNUMX 番目のテーブルの列番号を示します。
  • 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 を返すだけの場合です。
ドキュメント vlookup 関数 56 1

ステップ 1: 次の式を適用して記入します。

次の数式を空白のセルに適用し、この数式を入力するセルまで塗りつぶしハンドルを下にドラッグしてください。

=IF(ISNA(VLOOKUP(C2,$A$2:$A$10,1,FALSE)), "No", "Yes")

結果:

必要に応じて結果が得られます。スクリーンショットを参照してください。

注: 上の式では次のようになります。

  • C2 チェックするルックアップ値です。
  • A2:A10 ルックアップ値が見つかるかどうかを確認する範囲のリストです。
  • 間違った情報 完全一致を取得することを示します。

3.7 VLOOKUP と行または列内の一致するすべての値を合計する

数値データを扱う場合、テーブルから一致する値を抽出し、複数の列または行の数値を合計する必要がある場合があります。 このセクションでは、このタスクを達成するのに役立ついくつかの公式を紹介します。

 3.7.1 VLOOKUP と XNUMX 行または複数行で一致したすべての値を合計する

次のスクリーンショットに示すように、数か月間の売上が記載された製品リストがあるとします。 次に、指定された製品に基づいて、すべての月のすべての注文を合計する必要があります。

ステップ 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 {} 範囲の合計を計算するために使用される列番号です。
  • 間違った情報 は完全一致を示します。

ヒント: 複数の行のすべての一致を合計する場合は、次の式を使用してください。

  • =SUMPRODUCT(($A$2:$A$9=H2)*$B$2:$F$9)
 3.7.2 VLOOKUP と XNUMX つまたは複数の列内の一致するすべての値の合計

以下のスクリーンショットに示すように、特定の月の合計値を合計したい場合。 通常の 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 VLOOKUP と最初に一致した値または一致したすべての値を強力な機能で合計する

もしかしたら、上記の公式を覚えるのが難しいかもしれません。この場合、私は強力な機能をお勧めします - ルックアップと合計 of Kutools for Excel, この機能を使用すると、行または列で最初に一致する値またはすべての一致する値を Vlookup して合計することができる限り簡単に行えます。

  1. クツール > スーパールックアップ > ルックアップと合計 この機能を有効にします。
  2. 次に、必要に応じてダイアログ ボックスから操作を指定します。
Note: この機能を適用するには、ダウンロードする必要があります 30日間の無料トライアル付きExcel用Kutools 最初に。
 3.7.4 VLOOKUP と行と列の両方で一致したすべての値を合計する

たとえば、列と行の両方を一致させる必要があるときに値を合計して、下のスクリーンショットに示すように、XNUMX月の製品Sweaterの合計値を取得する場合。

ここでは、SUMPRODCT 関数を使用してこのタスクを実行できます。

次の数式をセルに入力して、 を押してください。 入力します 結果を取得するためのキー。スクリーンショットを参照してください。

=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 キー列に基づいて XNUMX つのテーブルを結合する VLOOKUP

日常業務でデータを分析する際、XNUMX つ以上のキー列に基づいて、必要な情報をすべて XNUMX つのテーブルに収集する必要がある場合があります。 このタスクを実行するには、VLOOKUP 関数の代わりに INDEX 関数と MATCH 関数を使用できます。

 3.8.1 XNUMX つのキー列に基づいて XNUMX つのテーブルを結合する VLOOKUP

たとえば、XNUMX つのテーブルがあり、最初のテーブルには製品と名前のデータが含まれ、XNUMX 番目のテーブルには製品と注文のデータが含まれます。ここで、共通の製品列を XNUMX つのテーブルに一致させることによって、これら XNUMX つのテーブルを結合したいとします。

ステップ 1: 次の式を適用して記入します。

空白セルに次の式を当てはめてください。 次に、この数式を適用するセルまで塗りつぶしハンドルをドラッグします。

=INDEX($F$2:$F$8, MATCH($A2, $E$2:$E$8, 0))

結果:

これで、キー列データに基づいて最初のテーブルに順序列が結合された結合テーブルが得られます。

注: 上記の式では:

  • A2 探しているルックアップ値です。
  • F2:F8 一致する値を返したいデータの範囲です。
  • E2:E8 ルックアップ値を含むルックアップ範囲です。
 3.8.2 複数のキー列に基づいて XNUMX つのテーブルを結合する VLOOKUP

結合する XNUMX つのテーブルに複数のキー列がある場合、これらの共通の列に基づいてテーブルを結合するには、以下の手順に従ってください。

一般的な式は次のとおりです。

=INDEX(lookup_table, MATCH(1, (lookup_value1=lookup_range1) * (lookup_value2=lookup_range2), 0), return_column_number)

注:

  • ルックアップテーブル ルックアップ データと一致するレコードが含まれるデータ範囲です。
  • ルックアップ値1 は、探している最初の基準です。
  • ルックアップ範囲1 データリストには最初の基準が含まれています。
  • ルックアップ値2 探している XNUMX 番目の基準です。
  • ルックアップ範囲2 データリストには XNUMX 番目の基準が含まれています。
  • 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: 他のセルに数式を入力する

次に、最初の数式セルを選択し、塗りつぶしハンドルをドラッグして、必要に応じてこの数式を他のセルにコピーします。

ヒント: Excel 2016 以降のバージョンでは、 Power Query キー列に基づいてXNUMXつ以上のテーブルをXNUMXつにマージする機能。 ステップバイステップで詳細を知るためにクリックしてください.

3.9 複数のワークシート間で値を照合する VLOOKUP

Excel の複数のワークシートに対して VLOOKUP を実行する必要があったことがありますか? たとえば、データ範囲を含む XNUMX つのワークシートがあり、これらのシートから条件に基づいて特定の値を取得したい場合は、ステップバイステップのチュートリアルに従うことができます。 複数のワークシートにわたる VLOOKUP 値 このタスクを実行します。


VLOOKUPに一致する値は、セルの書式を維持します

一致する値を検索する場合、フォントの色、背景色、データ形式などの元のセルの書式設定は保持されません。 セルまたはデータの書式を維持するために、このセクションでは、ジョブを解決するためのいくつかのトリックを紹介します。

4.1 VLOOKUP の値の照合とセルの色、フォントの書式設定の維持

ご存知のとおり、通常の VLOOKUP 関数は、別のデータ範囲からのみ一致する値を取得できます。 ただし、塗りつぶしの色、フォントの色、フォント スタイルなど、セルの書式設定とともに対応する値を取得したい場合があります。 このセクションでは、Excel でソースの書式設定を維持しながら、一致する値を取得する方法について説明します。

セルの書式設定とともに対応する値を検索して返すには、次の手順を実行してください。

ステップ 1: コード 1 をシート コード モジュールにコピーします。

  1. VLOOKUP するデータが含まれているワークシートで、シート タブを右クリックし、 コードを表示 コンテキストメニューから。 スクリーンショットを参照してください:
  2. オープンで アプリケーション向け Microsoft Visual Basic ウィンドウの場合は、以下のVBAコードをコードウィンドウにコピーしてください。
  3. VBA コード 1: ルックアップ値とともにセルの書式設定を取得する VLOOKUP
  4. 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 をモジュール ウィンドウにコピーします。

  1. まだで アプリケーション向け Microsoft Visual Basic ウィンドウ、クリック インセット > モジュール、次に、以下のVBAコード2をモジュールウィンドウにコピーします。
  2. VBA コード 2: ルックアップ値とともにセルの書式設定を取得する VLOOKUP
  3. 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 プロジェクトのオプションを選択します

  1. 上記のコードを挿入した後、クリックします。 ツール > 参考文献 セクションに アプリケーション向け Microsoft Visual Basic 窓。 次に、 Microsoftスクリプトランタイム のチェックボックス 参照– VBAProject ダイアログボックス。 スクリーンショットを参照してください:
  2. 次に、をクリックします。 OK をクリックしてダイアログ ボックスを閉じ、コード ウィンドウを保存して閉じます。

ステップ 4: 結果を取得するための式を入力します。

  1. 次に、ワークシートに戻り、次の式を適用します。 次に、塗りつぶしハンドルを下にドラッグして、すべての結果とその書式設定を取得します。 スクリーンショットを参照してください:
    =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 値を返したい列番号です。
  • 間違った情報 完全一致を取得することを示します。
  • mm/dd/yyy 保持する日付形式です。

4.3 VLOOKUPからセルのコメントを返す

次のスクリーンショットに示すように、Excel で VLOOKUP を使用して、一致するセル データとそれに関連付けられたコメントの両方を取得する必要があったことがありますか? その場合は、以下に示すユーザー定義関数がこのタスクの達成に役立ちます。

ステップ 1: コードをモジュールにコピーする

  1. 押したまま Alt + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。
  2. インセット > モジュール、次に次のコードをコピーしてモジュールウィンドウに貼り付けます。
    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
  3. 次に、コード ウィンドウを保存して閉じます。

ステップ 2: 数式を入力して結果を取得します

  1. 次に、次の数式を入力し、塗りつぶしハンドルをドラッグして、この数式を他のセルにコピーします。 一致した値とコメントの両方を同時に返します。スクリーンショットを参照してください。
    =vlookupcomment(D2,$A$2:$B$9,2,FALSE)

注: 上記の式では:

  • D2 対応する値を返したい検索値です。
  • A2:B9 は使用するデータテーブルです。
  • 2 返したい一致した値を含む列番号です。
  • 間違った情報 完全一致を取得することを示します。

4.4 テキストとして保存された VLOOKUP 数値

たとえば、元のテーブルの ID 番号が数値形式で、ルックアップ セルの ID 番号がテキストとして保存されているデータ範囲があると、通常の VLOOKUP 関数を使用すると #N/A エラーが発生する可能性があります。 この場合、正しい情報を取得するには、TEXT 関数と VALUE 関数を VLOOKUP 関数内でラップします。これを実現する式は次のとおりです。

ステップ 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 完全一致を取得することを示します。
  • この式は、どこに数字があり、どこにテキストがあるかわからない場合にも役立ちます。
Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations

目次