VLOOKUP関数を複数条件で検索する方法まとめ

VLOOKUP関数は本来、条件を複数指定することはできませんが、列を1つ追加してワードを結合することで簡単に複数条件で検索することは可能です。また少し難易度は高いですが、INDEX関数とMATCH関数を組み合わせて作成する方法では列を追加せずとも複数条件で検索できるようにすることも可能です。ここでは下記の5つのテクニックについて解説します。

  • VLOOKUP関数で複数条件を設定する方法
  • 作業列を追加せずに複数条件で検索する方法
  • 別シートのデータを複数条件で検索する方法
  • IF関数と複数条件検索を組み合わせて使う方法
  • OR条件で検索したい場合の検索方法
形と色の値を変更すると2つの条件に対応する値を返す数式

関連リンク

目次

VLOOKUP関数で複数条件を設定する方法

VLOOKUP関数で2つの条件の検索をしたい場合は、作業用の列を一つ追加し、擬似的に複数条件で検索する方法があります。具体的には追加した列に条件となるデータをつなげてしまい、そのつなげた文字列をキーに検索するという方法です。ここでは手順を1つ1つ説明します。

書式
=VLOOKUP(検索値A&検索値B,検索範囲,列番号,FALSE)
使用例
=VLOOKUP(B3&C3,B6:E17,4,FALSE)
複数条件で検索できる数式を設定している様子

手順1:作業用の列を追加する

データの一番左に作業用の列が必要なので追加します。

手順2:追加した列の一番上のセルを選択

追加した列の一番上のセルを選択します。

手順3:「=」を入力

「=」を入力します。

手順4:1つ目の条件のセルと2つ目の条件のセルを「&」でつなげる

同じ行の1つ目の条件のセルをクリックしてセル参照し、「&」を入力し、さらに2つ目の条件のセルをクリックしセル参照してつなげます。

手順5:数式をコピーして、他の行のデータもつなげる

2つのデータをつなげた数式を他の行にもコピー&ペーストしデータをつなげます。セル選択時の右下の十字マークをドラッグして使える「オートフィル」機能で素早くコピー&ペーストができます。

関連リンク
【エクセル】オートフィルの使い方まとめ

手順6:VLOOKUP関数の第一引数に2つの条件を「&」でつなげて設定する

データの用意ができたので、VLOOKUP関数を任意の場所に設定します。 第一引数の検索値には2つの条件を「&」でつなげて設定します。この例でいうとB3とC3をつなげます。第4引数はFALSEを設定します。

形と色の検索値を「&」でつなげて設定

関連記事
VLOOKUP関数の使い方

複数条件で検索することができました。

形と色の値を変更すると2つの条件に対応する値を返す数式
ゆう

この方法だと列を1つ追加しないといけないのですが、INDEX関数とMATCH関数を使った検索方法だと、列を追加せずに複数検索ができます。下部でその具体的な方法を解説します。

関連リンク

作業列を追加せずに複数条件で検索する方法

上記の方法は力技な印象ですが、INDEX関数とMATCH関数を組み合わせて活用することで、列を追加せずにスマートに複数条件から検索値を抽出することができます。

書式
{=INDEX(データ範囲,MATCH(検索値A&検索値B,検索範囲A&検索範囲B,0),列番号)}
使用例
{=INDEX(B6:D17,MATCH(B3&C3,B6:B17&C6:C17,0),3)}
INDEX関数とMATCH関数を組み合わせて複数条件での検索ができる数式を入力している様子

手順1:「=INDEX(」を入力

範囲と行番号と列番号から座標を取得するINDEX関数を入力します。

手順2:データ範囲を指定する

検索する範囲と返したい値が含まれているデータ範囲を指定します。

手順3:「,MATCH(」と入力

MATCH関数をINDEX関数の第2引数に設置します。

手順4:検索条件1つ目と2つ目を「&」でつなげて「,」で区切る

検索条件の2つの要素を「&」でつなげて一つの文字列にします。

手順5:2つの検索範囲を「&」でつなげて「,」で区切る

2つの検索範囲も「&」でつなげます。

手順6:「0),」と入力する

続けて「0),」と入力します。
完全一致で返却値を返すためMATCH関数の第3引数は0を設定します。

手順7:列番号を入力して「)」で閉じる

最後に列番を入力して「)」で閉じます。

手順8:CTRL + SHIFT + ENTERで数式を決定し「{}」で囲む

CTRL + SHIFT + ENTERで数式を決定すると自動的に数式が「{}」で囲まれます。「{}」は直接入力するエラーになるので、必ずCTRL + SHIFT + ENTERで対応してください。

完成:複数条件で検索できるようになりました。

下記のように条件を変えると自動で対応する値を取得してくれるようになりました。今回は形や色の項目を例に出しましたが、名簿から名前や年齢などの複数項目で検索するなどいろいろ使い道があるのでぜひ覚えておいてください。

関連リンク

VLOOKUP関数を複数条件で検索する方法
VLOOKUP関数で別シートから参照する方法
VLOOKUPをVBAで使用する方法
VLOOKUP関数で#N/Aエラーでうまくいかない時の解決方法
VLOOKUP関数とIF関数を組み合わせて使う使用例まとめ
VLOOKUP関数の列番号とは?自動で列番号を変更する方法も
VLOOKUP関数で「0」やエラーを空白にする方法
INDEX関数とMATCH関数で対応値を検索する方法
VLOOKUP関数で「#NAME?」と表示された時の対処方法
VLOOKUP関数で合計、集計は不可能(SUMIFで条件指定し合計値を出す方法)
XLOOKUP関数の使い方(VLOOKUPの後継関数)
VLOOKUP関数で部分一致(〜含む)検索する方法

別シートのデータを複数条件で検索する方法

ここでは別シートにあるデータから複数条件で対応値を検索する方法について解説します。別シートのデータは列を追加できないものと仮定し、作業列を追加しないでも複数条件で検索できるINDEXとMATCH関数を組み合わせた方法で検索します。

書式
=INDEX(データシート名!データ範囲,MATCH(検索値A&検索値B,データシート名!検索範囲A&データシート名!検索範囲B,0),列番号)
数式例
=INDEX(データ!A2:C13,MATCH(数式!B3&数式!C3,データ!A2:A13&データ!B2:B13,0),3)

手順1:「=INDEX(」を入力

範囲と行番号と列番号から座標を取得するINDEX関数を入力します。

手順2:別シートのデータ範囲を指定する

データが格納されているシートを選択し、検索する範囲と返したい値が含まれているデータ範囲を指定します。別シートの場合は例えば「Sheet1!A2:C13」というように「シート名!セル番号」の形式で入力されます。数式入力中であれば、ドラッグするだけで自動で入力されます。

手順3:「,MATCH(」と入力

「,」で区切ってから、MATCH関数をINDEX関数の第2引数に設置します。

手順4:検索条件1つ目と2つ目を「&」でつなげて「,」で区切る

検索条件の2つの要素を「&」でつなげて一つの文字列にします。

手順5:2つの検索範囲を「&」でつなげて「,」で区切る

2つの検索範囲も「&」でつなげて「,」を入力して区切りします。

手順6:「0),」と入力する

続けて「0),」と入力します。
完全一致で返却値を返すためMATCH関数の第3引数は0を設定します。

手順7:列番号を入力して「)」で閉じる

最後に列番号を入力して「)」で閉じます。ここでいう列番号はデータ範囲内で左から数えて何番目の値を取得したいかを指定します。

手順8:CTRL + SHIFT + ENTERで数式を決定し「{}」で囲む

CTRL + SHIFT + ENTERで数式を決定すると自動的に数式が「{}」で囲まれます。「{}」は直接入力するエラーになるので、必ずCTRL + SHIFT + ENTERで対応してください。

完成:別シートデータを複数条件で検索できるようになりました。

下記のように条件を変えると自動で対応する値を取得してくれるようになりました。今回は形や色の項目を例に出しましたが、名簿から名前や年齢などの複数項目で検索するなどいろいろ使い道があるのでぜひ覚えておいてください。

関連リンク

VLOOKUP関数を複数条件で検索する方法
VLOOKUP関数で別シートから参照する方法
VLOOKUPをVBAで使用する方法
VLOOKUP関数で#N/Aエラーでうまくいかない時の解決方法
VLOOKUP関数とIF関数を組み合わせて使う使用例まとめ
VLOOKUP関数の列番号とは?自動で列番号を変更する方法も
VLOOKUP関数で「0」やエラーを空白にする方法
INDEX関数とMATCH関数で対応値を検索する方法
VLOOKUP関数で「#NAME?」と表示された時の対処方法
VLOOKUP関数で合計、集計は不可能(SUMIFで条件指定し合計値を出す方法)
XLOOKUP関数の使い方(VLOOKUPの後継関数)
VLOOKUP関数で部分一致(〜含む)検索する方法

IF関数と複数条件検索を組み合わせて使う方法

IF関数と複数条件の検索を組み合わせて使うことも可能です。ここではINDEX関数とMATCH関数を使った複数条件検索とIF関数を組み合わせて、在庫が0個であれば「在庫なし」それ以外であれば「在庫あり」と表示する数式の作成方法について解説します。

書式
=IF(INDEX(データ範囲,MATCH(検索値A&検索値B,検索範囲A&検索範囲B,0),列番号)=0,条件合致の場合,それ以外の場合)
数式例
=IF(INDEX(B6:D17,MATCH(B3&C3,B6:B17&C6:C17,0),3)=0,"在庫なし","在庫あり")
IF関数と複数条件検索を組み合わせた数式を作成する様子

手順1:「=IF(INDEX(」と入力

空白セルに「=IF(INDEX(」と入力します。

手順2:データ範囲を指定する

検索する範囲と返したい値が含まれているデータ範囲を指定します。該当セルをドラッグするだけで自動入力されます。

手順3:「,MATCH(」と入力

「,MATCH(」と入力します。MATCH関数をINDEX関数の第2引数に設置します。INDEX関数の第2引数は行番号を指定する箇所で、MATCH関数が返す数値が代入されます。

手順4:検索条件1つ目と2つ目を「&」でつなげて「,」で区切る

MATCH関数の検査値には、検索条件の2つの要素を「&」でつなげて一つの文字列にして設定します。

手順5:2つの検索範囲を「&」でつなげて「,」で区切る

MATCH関数の第2引数の検査範囲には、検査値に設定したのと同じように2つの検索範囲も「&」でつなげて設定します。

手順6:「0),」と入力する

続けて「0),」と入力します。
完全一致で返却値を返すためMATCH関数の第3引数は0を設定します。

手順7:列番号を入力して「)」で閉じる

列番号を入力して「)」で閉じます。この場合、在庫数を返したいので「3」を指定します。

手順8:「=0,”在庫なし”,”在庫あり”)」と入力

IF関数の残りの入力として、「=0,”在庫なし”,”在庫あり”)」と入力します。

手順9:CTRL + SHIFT + ENTERで数式を決定し「{}」で囲む

CTRL + SHIFT + ENTERで数式を決定すると自動的に数式が「{}」で囲まれます。「{}」は直接入力するエラーになるので、必ずCTRL + SHIFT + ENTERで対応してください。

完成:複数条件での検索結果による出し分けができるようになりました。

下記のように条件を変えると自動で対応する値を取得してくれるようになりました。在庫が0のものは「在庫なし」、それ以外のものは「在庫あり」と表示されているのがわかります。

関連リンク

VLOOKUP関数を複数条件で検索する方法
VLOOKUP関数で別シートから参照する方法
VLOOKUPをVBAで使用する方法
VLOOKUP関数で#N/Aエラーでうまくいかない時の解決方法
VLOOKUP関数とIF関数を組み合わせて使う使用例まとめ
VLOOKUP関数の列番号とは?自動で列番号を変更する方法も
VLOOKUP関数で「0」やエラーを空白にする方法
INDEX関数とMATCH関数で対応値を検索する方法
VLOOKUP関数で「#NAME?」と表示された時の対処方法
VLOOKUP関数で合計、集計は不可能(SUMIFで条件指定し合計値を出す方法)
XLOOKUP関数の使い方(VLOOKUPの後継関数)
VLOOKUP関数で部分一致(〜含む)検索する方法

OR条件で検索したい場合の検索方法

VLOOKUP関数で「AもしくはB」のようにOR条件で検索したい場合はIFERROR関数を使用します。下記の例では検索値Aを検索して該当項目が見つからなければ検索値Bを検索します。下記では詳しい手順について解説します。

書式
=IFERROR(IFERROR(VLOOKUP(検索値A,検索範囲,列番号,FALSE),VLOOKUP(検索値B,検索範囲,列番号,FALSE)),どちらも該当なしの場合)
使用例
=IFERROR(IFERROR(VLOOKUP(B3,B6:C14,2,FALSE),VLOOKUP(C3,B6:C14,2,FALSE)),"該当なし")
OR条件で検索するVLOOKUP関数の数式を入力している様子

手順1:「=IFERROR(IFERROR(VLOOKUP(」と入力

「=IFERROR(IFERROR(VLOOKUP(」と入力します。関数は途中までに入力すると候補が出てくるので矢印キーで選択しTABキーを押下することで自動入力できるので便利です。

手順2:検索値Aを検索するVLOOKUP関数を入力

1つ目に検索する検索値AのVLOOKUP関数を入力します。

手順3:「,」で区切り、検索値Bを検索するVLOOKUP関数を入力

「,」で区切り、2つ目に検索する検索値BのVLOOKUP関数を入力します。

手順4:「),”該当なし”)」と入力し、ENTERキーを押下

「),”該当なし”)」と入力します。「”該当なし”」の部分は2つの検索値が見つからなかった時に表示する文言となります。数式を入力したらENTERキーを押下します。

OR検索(AもしくはB)で検索できるようになりました。

2つの検索値でOR検索ができるようになりました。下記のように該当する値が「ひらがな」なのか「漢字」なのかがわからない時などに使うと便利です。

関連リンク

VLOOKUP関数を複数条件で検索する方法
VLOOKUP関数で別シートから参照する方法
VLOOKUPをVBAで使用する方法
VLOOKUP関数で#N/Aエラーでうまくいかない時の解決方法
VLOOKUP関数とIF関数を組み合わせて使う使用例まとめ
VLOOKUP関数の列番号とは?自動で列番号を変更する方法も
VLOOKUP関数で「0」やエラーを空白にする方法
INDEX関数とMATCH関数で対応値を検索する方法
VLOOKUP関数で「#NAME?」と表示された時の対処方法
VLOOKUP関数で合計、集計は不可能(SUMIFで条件指定し合計値を出す方法)
XLOOKUP関数の使い方(VLOOKUPの後継関数)
VLOOKUP関数で部分一致(〜含む)検索する方法

おすすめの解説動画

当ページとは少し違う切り口で復数条件の検索をする方法の解説をしている動画です。当ページとはまた違った学びがあるのでおすすめです。

ショートカットキーの練習できます

当サイトはショートカットキーの練習を実際の動きを確認しながら練習できる機能がついています。繰り返し指を動かして練習ができるので、ゲーム感覚で遊んでいくうちに自然とショートカットキーが使えるようになれます。ショートカットキーは暗記するよりも実際に手を動かして練習していったほうが習得が早くなるので、是非当サイトをブックマークに登録し定期的に練習してみてください。下記のSTARTキーを押下すると練習を始められます。

下のスタートボタンを押して練習モードに入ります。
STARTSTOP
※入力モード切り替え ctrl + shift + alt + space
PRE
NEXT
現在の問題をリストから除外
除外したリストをリセット
現在の除外状況のURL取得
コピー
ガイドモード
リピートモード

※推奨ブラウザ Google Chrome

PUSH ENTER
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次