VLOOKUP関数で複数条件の検索をする方法

VLOOKUP関数は、検索キーに指定できる条件は一つです。
ですが、普段の業務のなかで「VLOOKUP関数で複数の条件を指定したい」と思ったシーンはありませんか?

実はちょっとした小技を使えば、簡単にVLOOKUP関数で複数条件の値の抽出ができるようになるんです。

こんな人におすすめ!
  • VLOOKUP関数で、日付と社員番号の両方の条件に合致する値を抽出したい。
  • CSVデータから自動で整理された表をつくりたい。
  • ピボットテーブルに頼らず、おしゃれな表をつくりたい。

VLOOKUP関数の基礎から復習したい、という人はこちらの記事をご覧ください。

今日の公式

繰り返しになりますが、VLOOKUP関数は一つしか検索キーを指定できない、という弱点があります。

では、複数の条件でデータを抽出したいときはどうしたらいいのか?

答えは、シンプルです。
複数の条件を結合して、一つの文字列にし、それを検索キーとして使用すればいいのです。

=VLOOKUP(条件1&条件2, 範囲, 番号, [並び替え済み])
項目説明
条件1最初の条件に指定したい値、または値が含まれるセルを指定します。
条件22番目の条件に指定したい値、または値が含まれるセルを指定します。
範囲検索対象の範囲です。範囲の先頭列で [検索キー] で指定したキーを検索します。
番号先頭列から数えて、何列目の値を返すか指定します。
並び替え済み先頭列が並び替え済みかどうかを指定します。
多くの場合では「FALSE」を指定すれば問題ありません。

VLOOKUP関数で複数条件の検索をする方法の解説

下記のような売上データから、縦軸が日付、横軸がスタッフ名の売上報告書を作成するケースで解説します。

1参照元の表で、複数条件を結合して一つの検索キーを作成する

VLOOKUP関数を組む前の準備として、参照元である売上データで、複数の条件を結合し一つの文字列を作ります。
この文字列はあとで、VLOOKUP関数の検索キーとして使用するため、一番左側(今回はA列)に列を追加します。

次に、A列に「日付」と「スタッフ名」を結合する式を記述します。
方法はいくつかありますが、今回は「&」を使ってみましょう。

=B2&C2

このとき、筆者はよく条件と条件の間に文字列「_」を挿入します。

=B2&"_"&C2

こうしている理由は以下の2つ。

  • いくつの条件が結合されているか目で確認しやすい。
  • 数値の条件を2つ結合すると、不意のエラーの原因になる。

2番目の理由の具体例ですが、下の表をご覧ください。
条件と条件をそのまま結合すると、本来は別の条件の組み合わせであるはずなのに、同じ文字列になってしまうケースがあるのです。

条件1条件2そのまま結合した場合「_」を挿入した場合
12345671234567123_4567
123456712345671234_567

稀にこのようなことがあるので、条件と条件を結合するときは、なにかしら記号を挿入することをおすすめします。

ポイント!
  • 複数の条件を結合する場合は、あいだに「_」など記号を入れると、不意のエラーを防ぐことができる。

2VLOOKUP関数を組む

    さて、検索キーの準備ができたら、あとは売上報告書に戻ってVLOOKUP関数を組むだけです。

    =VLOOKUP($B5&"_"&C$4, '売上データ'!$A:$D, 4, FALSE)

    あとでセルをコピペすることを想定して、絶対参照「$」を使うのも忘れずに。

    そのほかのセルにもVLOOKUP関数を反映させれば完成です。

    練習問題

    練習問題を解いてみましょう。

    ※「ファイル」>「コピーを作成」でスプレッドシートをコピーすることで、編集可能になります。

    おすすめの記事