Excel初心者および上級者向けの20以上のVLOOKUP使用例
VLOOKUP関数は、Excelで最も人気のある関数の一つです。このチュートリアルでは、基本から高度な例を数十ステップに分けて、ExcelでVLOOKUP関数を使用する方法を紹介します。
目次:
- 2.1 完全一致と近似一致のVLOOKUP
- 2.2 大文字と小文字を区別するVLOOKUP
- 2.3 右から左へのVLOOKUP
- 2.4 VLOOKUPで2番目、n番目、または最後の一致する値を検索
- 2.5 2つの指定された値または日付の間のVLOOKUP
- 2.6 VLOOKUP関数で部分一致にワイルドカードを使用する
- 2.7 別のワークシートからVLOOKUPで値を検索
- 2.8 別のワークブックからVLOOKUPで値を検索
- 2.9 VLOOKUPで0や#N/Aエラー値の代わりに空白または特定のテキストを返す
- 3.1 VLOOKUP関数を使用した双方向検索(行と列でのVLOOKUP)
- 3.2 複数条件に基づくVLOOKUPの一致値
- 3.3 1つまたは複数の条件で複数の一致する値を返すVLOOKUP
- 値を水平に返す | 値を垂直に返す | 値を1つのセルに返す
- 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関数はほとんどのExcelユーザーにとって強力な関数です。この関数を使用すると、データ範囲の最も左の列で値を検索し、指定した列から同じ行の一致する値を返すことができます(次のスクリーンショット参照)。
VLOOKUP関数の構文:
引数:
"Lookup_value"(必須):検索したい値です。値(数値、日付、またはテキスト)またはセル参照が可能です。この値は、table_arrayの範囲の最初の列に存在している必要があります。
"テーブル範囲"(必須):検索値の列と結果値の列が存在するデータ範囲または表。
"Col_index_num"(必須):返す値を含む列番号。これはテーブル配列の最も左の列から1から始まります。
"範囲検索"(オプション):このVLOOKUP関数が完全一致を返すか、近似一致を返すかを決定する論理値です。
- "近似一致" – 1 / TRUE / 省略時(デフォルト): 完全一致が見つからない場合、数式は最も近い一致を検索します。つまり、検索値よりも小さい最大値を探します。
- "完全一致" – 0 / FALSE: これは、検索値と完全に等しい値を検索するために使用されます。完全一致が見つからない場合、エラー値 #N/A が返されます。
関数の説明:
- Vlookup関数は、左から右に値を検索します。
- Vlookup関数は、大文字と小文字を区別しない検索を実行します。
- 検索値に基づいて複数の一致する値がある場合、Vlookup関数を使用すると、最初に一致した値のみが返されます。
2.1.1 完全一致のVLOOKUPを実行する
通常、VLOOKUP関数を使用して完全一致を検索する場合、最後の引数としてFALSEを使用するだけで済みます。
例えば、特定の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 アシスタント: 次の要素に基づいてデータ分析を革新: インテリジェント実行 | コード生成 | カスタム数式の作成 | データを分析してグラフを生成 | Kutools 拡張機能の呼び出し… |
人気の機能: 重複を見つける、ハイライトする、または特定する | 空白行を削除 | データを失わずに列やセルを結合 | 数式なしで丸める ... | |
スーパーLOOKUP: 複数条件VLookup | 複数値VLookup | 複数シートの検索 | ファジーマッチ ... | |
高度なドロップダウンリスト: ドロップダウンリストを迅速に作成 | 依存ドロップダウンリスト | 複数選択ドロップダウンリスト ... | |
列マネージャー: 特定の数の列を追加 | 列を移動 | 非表示の列を再表示 | 範囲と列を比較 ... | |
注目機能: グリッドフォーカス | デザインビュー | 強化された数式バー | ワークブックおよびシートマネージャー | オートテキスト ライブラリ | 日付ピッカー | データの統合 | セルの暗号化/復号化 | リストによるメール送信 | スーパーフィルター | 特殊フィルタ (太字/斜体などによる) ... | |
上位15のツールセット: 12 のテキストツール (テキストの追加, 特定の文字を削除, ...) | 50以上 のチャート タイプ (ガントチャート, ...) | 40以上の実用的な 数式 (誕生日に基づいて年齢を計算する, ...) | 19 の挿入ツール (QRコードの挿入, パスからの画像挿入, ...) | 12 の変換ツール (単語に変換する, 通貨変換, ...) | 7つ の結合および分割ツール (高度な行のマージ, セルの分割, ...) | 他にも多数... |
Kutools for Excelは300以上の機能を誇り、必要なものがワンクリックで手に入ります...
2.1.2 近似一致によるVLOOKUPの実行
近似一致は、データ範囲間の値を検索する際に役立ちます。完全一致が見つからない場合、近似VLOOKUPは検索値よりも小さい最大値を返します。
例えば、次のデータ範囲があり、指定された注文が「Orders」列にない場合、列Bの最も近い「Discount」をどのように取得すればよいでしょうか?
ステップ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:任意の数式を適用し、他のセルにフィルする
結果を取得したい空白のセルに、以下の数式のいずれかをコピーして貼り付けてください。次に、数式が入力されたセルを選択し、フィルハンドルを下にドラッグして、この数式を適用したいセル範囲に適用します。
数式 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 And Return The Last Matching Valueのチュートリアルが、詳細に最後の一致する値を取得するのに役立つかもしれません。
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関数内で使用できます。これにより、検索値に対して部分一致を行うことが可能です。例えば、検索値の一部に基づいて、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)
- 指定されたテキストが文字列の先頭、末尾、または途中にある場合でも、部分的な文字列に基づいて一致する値を検索して返すには、セル参照またはテキストを前後にアスタリスク(*)2つで囲むだけで済みます。この数式を使用してください。
-
=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" は検索値を表します;
- 'データシート'!A2:C15" は、Data sheet という名前のワークシートの範囲 A2:C15 から値を検索することを示します。(シート名にスペースや句読点が含まれる場合は、シート名をシングルクォーテーションで囲む必要があります。それ以外の場合は、次のようにシート名を直接使用できます:
=VLOOKUP(A2,Datasheet!$A$2:$C$15,3,0) )。 - "3" は、返したい一致するデータが含まれている列番号です。
- "0"は完全一致を意味します。
2.8 別のワークブックからVLOOKUPで値を検索
このセクションでは、VLOOKUP関数を使用して別のワークブックから一致する値を検索および返す方法について説明します。
例えば、2つのワークブックがあるとします。最初のワークブックには製品のリストとそれぞれのコストが含まれています。2番目のワークブックでは、以下のように各製品項目に対応するコストを抽出したいとします(下のスクリーンショット参照)。
ステップ1:数式を適用する
使用したい両方のワークブックを開き、結果を表示したい第二のワークブックのセルに次の数式を適用します。その後、この数式を必要な他のセルにドラッグしてコピーします。
=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の代わりに表示したい場合、この「VLOOKUPで0やN/Aの代わりに空白または特定の値を返す」チュートリアルが役立つかもしれません。
3.1 双方向検索(行と列でのVLOOKUP)
場合によっては、2次元検索を実行する必要があるかもしれません。これは、行と列の両方で値を同時に検索することを意味します。例えば、以下のようなデータ範囲があり、特定の四半期における特定の製品の値を取得したい場合が考えられます。このセクションでは、Excelでこのタスクに対処するための数式を紹介します。
Excelでは、VLOOKUP関数とMATCH関数を組み合わせて使用することで、双方向検索を行うことができます。
次の数式を空白のセルに適用し、"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 複数条件に基づく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」には "Multi-condition Lookup" 機能があり、いくつかのクリックだけで1つまたは複数の条件に基づいて対応する結果を返すことができます。
- 「Kutools」>「スーパーLOOKUP」>「複数条件検索」をクリックして、この機能を有効化します。
- 次に、データに基づいてダイアログボックスから操作を指定します。
3.3 複数の基準で複数の値を返すVLOOKUP
Excelでは、VLOOKUP関数は値を検索し、複数の対応する値が見つかった場合でも最初に一致した値しか返しません。時には、行、列、または単一のセル内のすべての対応する値を返したい場合があります。このセクションでは、ワークブック内で1つまたは複数の条件に基づいて複数の一致する値を返す方法について説明します。
3.3.1 1つまたは複数の条件に基づいてすべての一致する値を水平方向にVLOOKUP
A1:C14の範囲に国、都市、名前を含むデータ表があると仮定します。そして、以下スクリーンショットに示すように、「US」からのすべての名前を水平方向に返したいとします。このタスクを解決するには、ステップバイステップで結果を得るためには こちらをクリックしてください。
3.3.2 1つまたは複数の条件に基づいてすべての一致する値を垂直方向にVLOOKUP
特定の条件に基づいてVlookupを行い、下のスクリーンショットに示すようにすべての一致する値を垂直方向に戻す必要がある場合は、詳細な解決策はこちらをクリックしてください。
3.3.3 1つまたは複数の条件に基づいてすべての一致する値を単一のセルにVLOOKUP
複数の一致する値を指定した区切り文字で1つのセルに返すVlookupを行いたい場合、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つの独立した表を含むワークシートがあるとします。最初の表には、すべての製品名とそれに対応する営業担当者のリストが記載されています。2番目の表には、各営業担当者の総売上が記載されています。ここで、次のスクリーンショットに示すように、各製品の売上を見つけたい場合、VLOOKUP関数をネストすることでこのタスクを実行できます。
ネストされたVLOOKUP関数の一般的な数式は次のとおりです:
注記:
- "lookup_value" は、検索する値です。
- "Table_array1"、"Table_array2" は、検索値と返す値が存在するテーブルです。
- "col_index_num1" は、最初のテーブル内で中間共通データを見つけるための列番号を示します。
- "col_index_num2" は、一致する値を返したい第二のテーブル内の列番号を示します。
- "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に見つかった場合には「はい」、見つからなかった場合には「いいえ」を返すことができます。
ステップ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と一致するすべての値を列と行で合計
列と行の両方を一致させる必要がある場合に値を合計したい場合、例えば、以下のスクリーンショットに示すように、製品「セーター」の月「3月」における合計値を求めたい場合があります。
ここで、SUMPRODCT関数を使用してこのタスクを実行できます。
次の数式をセルに適用し、「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つまたは複数のキーカラムに基づいてすべての必要な情報を1つのテーブルにまとめる必要がある場合があります。このタスクを実行するために、VLOOKUP関数の代わりにINDEX関数とMATCH関数を使用することができます。
3.8.1 一つのキー列に基づいて2つのテーブルをマージするVLOOKUP
例えば、2つのテーブルがあり、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" は、検索する最初の条件です。
- "lookup_range1" は、最初の条件を含むデータリストです。
- "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: VBAproject のオプションを選択します
- 上記のコードを挿入した後、「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エラーが発生することがあります。この場合、正しい情報を取得するために、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"は完全一致を取得することを示します。
- この数式は、数字がある場所とテキストがある場所がわからない場合でもうまく機能します。
最高のオフィス生産性ツール
🤖 | Kutools AI Aide:データ分析を革新:インテリジェント実行 | コード生成 | カスタム数式の作成 | データを分析してグラフを生成 | Kutools Functions を呼び出す… |
人気機能:重複の検索・ハイライト・マーキング | 空白行を削除 | データを失わず列やセルを統合 | 丸める ... | |
スーパーLOOKUP:複数条件VLOOKUP | 複数値VLOOKUP | 複数シートの検索 | ファジーマッチ .... | |
高度なドロップダウンリスト:すばやくドロップダウンリストを作成 | 依存型ドロップダウンリスト | 複数選択ドロップダウンリスト .... | |
列の管理:特定数の列を追加 | 列を移動 | 非表示列の表示状態を切り替え | 範囲と列の比較 ... | |
注目機能:グリッドフォーカス | デザインビュー | 強化された数式バー | ワークブック&ワークシートの管理 | オートテキスト ライブラリ (Auto Text) | 日付ピッカー | データの統合 | セルの暗号化/復号化 | リスト送信で電子メールを送信 | スーパーフィルター | 特殊フィルタ(太字/斜体/取り消し線でフィルタ...) | |
トップ15ツールセット:12 種類のテキストツール(テキストの追加、特定の文字を削除など) | 50 種以上のグラフ タイプ(ガントチャートなど) | 40を超える実用的な 数式(誕生日に基づいて年齢を計算する、など) | 19種の 挿入ツール(QRコードの挿入、パスから画像の挿入など) | 12種類の 変換ツール(単語に変換する、通貨変換など) | 7つの 結合&分割ツール(高度な行のマージ、セルの分割など) | ...さらに多数 |
Kutools for ExcelでExcelスキルを強化し、かつてない効率を体験しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と時間短縮を実現します。最も必要な機能を今すぐ取得...
Office TabはOfficeにタブ表示を追加し、作業効率を大幅に向上させます
- Word、Excel、PowerPointでタブ編集とタブ閲覧を有効にします
- 同じウィンドウ内の新しいタブで複数のドキュメントを開いたり作成したりできます。新しいウィンドウを開く必要はありません。
- 生産性が50%向上し、1日に何百回ものマウスクリックも削減できます!
目次
- 1. VLOOKUP関数の紹介
- 2. 基本的なVLOOKUPの例
- 2.1 完全一致と近似一致のVlookup
- 完全一致
- 近似一致
- 2.2 大文字と小文字を区別するVlookup
- 2.3 右から左へのVlookup
- 2.4 2番目、n番目、または最後の一致する値をVlookupで検索
- 2番目またはn番目の一致する値
- 最後に一致する値
- 2.5 2つの値の間のVlookup
- 数式を使用して
- 便利な機能 - Kutools を使用して
- 2.6 部分一致のVlookup
- 2.7 別のワークシートからのVlookup
- 2.8 別のワークブックからVlookupを行う
- 2.9 Vlookupで0または#N/Aエラー値を修正
- 3. 高度なVLOOKUPの例
- 3.1 双方向検索
- 3.2 複数の条件に基づくVlookup
- 数式を使用して
- スマート機能 - Kutools を使用することにより
- 3.3 複数の一致する値をVlookupで検索
- 水平方向に値を返す
- 値を垂直に返す
- 1つのセルに返される値
- 3.4 行全体を検索
- 3.5 入れ子Vlookup
- 3.6 値が存在するか確認
- 3.7 Vlookupと合計
- 行内に
- 列で
- 強力な機能 - Kutools for Excel
- 行と列の両方で
- 3.8 2つのテーブルをマージするためのVlookup
- 主キーカラムによって
- 複数の主キーカラムによって
- 3.9 複数のワークシート間でのVlookup
- 4. VLOOKUPとセルの書式を保持
- 4.1 色とフォントの書式を保持
- 4.2 日付形式を保持する
- 4.3 セルのコメントを保持
- 4.4 テキストとして保存された数値
- 最高のオフィス生産性ツール