Excelの「XLOOKUP関数」は、従来のVLOOKUPやINDEX+MATCHの機能を強化した次世代の検索関数です。特に「複数条件で検索したい」「AND・OR条件を組み合わせたい」「別シートのデータを参照したい」など、高度な検索を行う際に強力なツールとなります。しかし、XLOOKUPをうまく活用するには、その仕組みや応用テクニックを理解する必要があります。本記事では、XLOOKUP関数を使った複数条件の検索方法について、基本から応用まで初心者にもわかりやすく詳しく解説します。
XLOOKUP関数とは?基本の仕組みを理解しよう
XLOOKUP関数は、Excelの最も強力な検索関数の一つであり、従来のVLOOKUPやINDEX+MATCHの機能を拡張した、より柔軟で効率的な検索を可能にするツールです。
XLOOKUP関数の主な特徴
- 左方向への検索が可能(VLOOKUPでは右方向の検索のみ)
- 完全一致・近似値検索の選択が可能
- 複数条件での検索ができる
- 複数の列を一度に取得できる
- エラー時の代替値を設定できる
- データが変更されても範囲指定の影響を受けにくい
XLOOKUPで具体的にできること
① 指定した値を検索し、対応するデータを取得する
基本的な使い方として、指定した値を特定の範囲から検索し、その対応するデータを取得できます。
例:社員IDから担当部署を検索
lessコピーする編集する=XLOOKUP(1001, A2:A10, B2:B10)
- A列に社員ID
- B列に担当部署
- 1001という社員IDを検索し、その担当部署を取得
② VLOOKUPではできない「左方向への検索」
VLOOKUPは検索範囲の左端で検索し、右の列からデータを取得しますが、XLOOKUPは検索範囲の左右どちらでも検索可能です。
例:社員名から社員IDを検索
lessコピーする編集する=XLOOKUP("田中", B2:B10, A2:A10)
- B列の「社員名」から「田中」を検索
- A列の「社員ID」を取得(VLOOKUPでは不可能だった左方向検索)
③ 複数条件を組み合わせて検索(AND・OR条件)
従来のVLOOKUPでは1つの条件しか指定できませんが、XLOOKUPでは複数の条件を組み合わせて検索が可能です。
AND条件(両方の条件を満たすデータを取得)
lessコピーする編集する=XLOOKUP(1, (A2:A10=1001)*(B2:B10="営業部"), C2:C10)
- A列の社員IDが1001かつB列の**部署が「営業部」**である場合のC列の値を取得
OR条件(どちらかの条件を満たすデータを取得)
lessコピーする編集する=XLOOKUP(1, (A2:A10=1001)+(B2:B10="営業部"), C2:C10)
- A列の社員IDが1001またはB列の**部署が「営業部」**である場合のC列の値を取得
④ エラー時の代替値を設定
XLOOKUPには、「見つからない場合の値」を設定するオプションがあります。
例:検索結果がない場合「該当なし」と表示
lessコピーする編集する=XLOOKUP(1001, A2:A10, B2:B10, "該当なし")
- 1001がA列にない場合、「該当なし」と表示
- VLOOKUPでは「#N/A」が表示されるが、XLOOKUPでは任意のメッセージを表示可能
⑤ 別シートや別ブックのデータを検索
XLOOKUPは別シートや別のExcelファイルからデータを検索することも可能です。
例:別シート「データ」から社員名を検索
lessコピーする編集する=XLOOKUP(A2, データ!A:A, データ!B:B)
- A列の社員IDを「データ」シートのA列で検索
- 対応するB列の社員名を取得
⑥ 近似値検索(ランキングや価格表で活用)
XLOOKUPは完全一致だけでなく、**最も近い値(近似値)**を返すことも可能です。
例:売上金額に応じたランクを判定
lessコピーする編集する=XLOOKUP(A2, 売上ランク!A:A, 売上ランク!B:B, , 1)
- A列の売上金額を「売上ランク」シートのA列で検索
- 最も近い(以上または以下)のランクをB列から取得
⑦ 3つ以上の条件を指定して検索
複数条件をさらに細かく指定する場合、条件をかけ合わせることで対応可能です。
例:社員ID、部署、役職が一致する場合の給料を取得
lessコピーする編集する=XLOOKUP(1, (A2:A10=1001)*(B2:B10="営業部")*(C2:C10="課長"), D2:D10)
- A列の社員IDが1001
- B列の部署が営業部
- C列の役職が課長
- D列の「給料」を取得
⑧ XLOOKUPで複数の列を一度に取得
XLOOKUPでは、1つの検索で複数の値を取得することもできます。
例:社員IDから名前と給料の両方を取得
lessコピーする編集する=XLOOKUP(1001, A2:A10, B2:C10)
- A列の社員IDを検索
- B列(名前)とC列(給料)を同時に取得
XLOOKUPを使うメリット
✅ VLOOKUPより柔軟に検索可能(左方向検索・複数条件検索)
✅ 検索結果がない場合の代替値を設定できる
✅ 別シート・別ブックのデータを簡単に検索
✅ AND・OR条件で複雑な検索が可能
✅ 複数の列を同時に取得可能
XLOOKUPを活用すれば、Excelの検索作業をより効率的に、正確に行うことができます。従来のVLOOKUPを使っていた方も、この機会にXLOOKUPに移行することで作業効率を大幅に向上させることができるでしょう!
XLOOKUP関数の基本構文
XLOOKUP関数の基本的な構文は以下のとおりです。
=XLOOKUP(検索値, 検索範囲, 戻り値範囲, [見つからない場合の値], [一致モード], [検索モード])
- 検索値:検索するキー(例:商品名や社員ID)
- 検索範囲:検索値を探す範囲
- 戻り値範囲:検索値が一致した際に取得するデータの範囲
- 見つからない場合の値(省略可):検索値がない場合に表示する値
- 一致モード(省略可):完全一致(デフォルト)や近似値検索の設定
- 検索モード(省略可):検索方向(昇順・降順など)
XLOOKUP関数の基本的な使用例
従来のVLOOKUPとの違い
従来のVLOOKUP関数と異なり、XLOOKUPでは左方向への検索や複数条件での検索が可能です。
基本的なXLOOKUPの例
=XLOOKUP(1001, A2:A10, B2:B10)
この関数は、A列の1001を検索し、対応するB列の値を返します。
XLOOKUPで複数条件を指定する方法(AND条件)
AND条件で複数条件を設定する方法
複数の条件を指定する場合、XLOOKUPは従来のVLOOKUPとは異なり、検索値を配列として組み合わせることで対応できます。
例:顧客IDと商品名の両方が一致する場合にデータを取得する
=XLOOKUP(1, (A2:A10=1001)*(B2:B10="商品A"), C2:C10)
- (A2:A10=1001):A列が1001の行をTRUEとする
- (B2:B10=”商品A”):B列が「商品A」の行をTRUEとする
- 乗算(*)を使うことでAND条件を適用し、両方がTRUEの行を検索する
この関数では、**A列が1001かつB列が「商品A」**に該当するC列の値を取得します。
XLOOKUPで複数条件を指定する方法(OR条件)
OR条件を設定する方法
OR条件を適用するには、加算(+)を使います。
例:顧客IDが1001または商品名が「商品A」の場合にデータを取得
=XLOOKUP(1, (A2:A10=1001)+(B2:B10="商品A"), C2:C10)
- (A2:A10=1001) + (B2:B10=”商品A”)
- A列が1001 または B列が「商品A」の場合にTRUE
- TRUE(1)が含まれる最初の行を検索
この関数では、**A列が1001またはB列が「商品A」**に該当するC列の値を取得します。
まとめ
XLOOKUP関数を活用すると、Excelでの検索機能が大幅に強化され、より柔軟なデータ抽出が可能になります。本記事では、以下のポイントについて詳しく解説しました。
XLOOKUPを使いこなせば、Excelでのデータ分析や検索作業が飛躍的に効率化されます。単なる関数の知識にとどまらず、実務で役立つテクニックとして活用できるよう、実際のデータを使いながら試してみることをおすすめします。ぜひ、今回紹介したテクニックを活用し、よりスマートなExcel操作を実現しましょう!