Excel一覧 Excel操作・関数 Vlookup データ操作

【Excel】VLOOKUP関数で複数条件を活用する方法とは?IFやヘルパー列を使った実践テクニックを徹底解説!

VLOOKUP関数は、Excelで最も使われる検索関数のひとつです。しかし標準機能では「1つの検索値」しか指定できないため、「複数の条件に合致するデータを取り出したい」と思ったときに戸惑う方も多いのではないでしょうか。

実務では、次のような“複数条件”の検索が求められるケースが多くあります:

  • 「商品コード+出荷日」で一致する価格を抽出したい
  • 「社員番号+年度」で該当する評価を検索したい
  • 「店舗名+商品カテゴリ」で売上データを表示したい

この記事では、VLOOKUP関数で複数条件を扱うための方法と構文、実務での使用例、代替関数との比較、注意点までを解説します。

そもそもVLOOKUPは「単一条件検索」が基本

VLOOKUP関数の基本構文は以下のとおりです。

=VLOOKUP(検索値, 範囲, 列番号, [検索方法])
  • 検索値:検索するキー(通常は1つ)
  • 範囲:データが格納された範囲(検索列は一番左)
  • 列番号:検索値と一致した行から取得する列番号
  • 検索方法:完全一致は「FALSE」

この構造上、検索値は1つのみです。
つまり、「社員番号かつ年度が一致する」ような検索は、そのままではできないという制限があります。


✅ 複数条件でVLOOKUPを使う基本的な考え方

複数条件で検索したい場合の主な方法は以下の2つです。

  1. ヘルパー列を使って複数条件を結合し、検索値と一致させる
  2. IF関数やCHOOSE関数などを使って式を組み合わせる(中級者向け)

このうち、初心者にも扱いやすく、実務でも汎用性が高いのが「ヘルパー列」を使う方法です。

【Excel】【初心者向け】VLOOKUP関数の使い方をやさしく解説|Excelの検索・参照を自動化しよう!


ヘルパー列を使って複数条件をVLOOKUPで検索する方法

■ 手順概要:

  1. 検索対象の表(マスタなど)に「条件1&条件2」を結合した列(ヘルパー列)を追加する
  2. 検索側(入力シートなど)でも同様に条件を結合する
  3. その結合値を検索値としてVLOOKUPを使う

・社員番号+年度で評価を検索する方法

▼ データシート「評価マスタ」

A列:社員番号B列:年度C列:評価D列:ヘルパー列(結合)
10012023A10012023
10012024B10012024
10022023A10022023

▼ 入力シート(検索側)

A列:社員番号B列:年度C列:検索キーD列:評価(自動表示)
1001202410012024=VLOOKUP(C2, 評価マスタ!D2:E100, 2, FALSE)

■ 数式例:

  1. ヘルパー列の作成(評価マスタシート)
=A2&B2
  1. 検索側の結合値の作成(入力シート)
=A2&B2
  1. VLOOKUP関数の実行
=VLOOKUP(C2, 評価マスタ!D2:E100, 2, FALSE)

→ 社員番号「1001」かつ年度「2024」の評価「B」が返されます。

【Excel】【トラブル解決】VLOOKUPで該当データがあるのにヒットしない原因と対処法|検索値があるのに#N/Aになるときは?


✅ CHOOSE関数と配列数式を組み合わせる方法(上級者向け)

CHOOSE関数と配列を使えば、ヘルパー列を使わずに式だけで複数条件を扱うことも可能です。

=VLOOKUP(1, CHOOSE({1,2}, (A2:A100&B2:B100), C2:C100), 2, FALSE)
  • 検索値:1
  • CHOOSE関数で結合キーと対象列を仮想的に作成
  • 結合キーを検索し、対象列の値を返す

※この方法は配列数式の扱いが難しく、一般的にはヘルパー列の利用が推奨されます。

【Excel】【初心者向け】VLOOKUP関数を別シートで使う方法とは?|構文・設定手順・実務活用を徹底解説!


よくあるエラーとその対処法

エラー内容原因対処法
#N/A検索値が一致しない結合方法や文字列の整合性(スペース・形式)を確認
#REF!列番号が範囲外指定した列番号が範囲の列数を超えていないか確認
#VALUE!引数の型が不正数式の結合や配列処理に誤りがないか見直す

■ 複数条件の活用例(実務編)

シーン条件検索対象
商品価格管理商品コード+日付特定日時の価格を取得
勤怠管理社員番号+日付出勤状況・勤務時間の検索
顧客対応履歴顧客ID+対応日対応担当者名を取得
売上集計店舗名+商品カテゴリ売上金額を抽出

■ INDEX+MATCHによる代替手法(上級者向け)

VLOOKUPでは検索列が左端にある必要がありますが、INDEX+MATCH関数の組み合わせを使うと、より柔軟な条件指定が可能になります。

複数条件に対応するには、MATCH関数内で(条件1=範囲1)*(条件2=範囲2)のようにブール演算を使う方法が一般的です。

=INDEX(C2:C100, MATCH(1, (A2:A100=G2)*(B2:B100=H2), 0))

※配列数式(Excel 365以外ではCtrl+Shift+Enterが必要)


■ XLOOKUP関数との比較と今後の選択肢

Excel 365 / Excel 2021以降では、XLOOKUP関数の導入により検索関数の使い勝手が向上しています。ただし、現時点ではXLOOKUPも複数条件を単独で処理する機能は持っていません

そのため、複数条件においては以下の選択肢が考えられます:

  • 初心者:VLOOKUP+ヘルパー列
  • 中級者:INDEX+MATCH+ブール演算
  • 上級者:FILTER関数(Excel 365限定)を使う

 

■ まとめ:VLOOKUPで複数条件検索を実現しよう!

VLOOKUP関数は本来単一条件で動作する関数ですが、ヘルパー列や関数の工夫により、実質的な複数条件検索も十分可能です

  • 「条件を結合して検索キーを作る」のが基本テクニック
  • 検索側とデータ側で同じ形式のキーを作成するのが成功のポイント
  • INDEX+MATCHやFILTER関数を使えば、より柔軟な構成も可能

複雑に見える処理も、構造を理解すれば難しくありません。ぜひ、VLOOKUPによる複数条件検索をマスターして、業務の自動化・正確化・効率化に活かしてください。

【Excel】条件付き書式の基本とは?仕組みと設定方法をわかりやすく解説【初心者向け実務活用例つき】

-Excel一覧, Excel操作・関数, Vlookup, データ操作