Microsoft Excelの公式ロゴマークと表計算スプレッドシート画面

広告 Excel

【簡単】ExcelのXLOOKUP関数で複数条件を指定してデータ抽出する手順

Excelでデータベースから特定の値を検索する際、条件が1つだけでなく、「店舗が『東京』」かつ「商品が『りんご』」といった「複数条件(AND条件)」に合致するデータを取り出したい場面は非常によくあります。

従来のVLOOKUP関数では、マスタデータに無理やり「店舗名+商品名」という作業用の結合列を新しく追加するか、極めて複雑な配列数式を書かなければならず、非常に手間がかかっていました。

Microsoft 365やExcel 2021以降の環境で使用できる「XLOOKUP(エックスルックアップ)関数」なら、作業列を一切作成することなく、スマートな記述で簡単に複数条件を指定してデータ抽出を行うことができます。

条件を繋ぐ「&」記号を使用した直感的な書き方から、より複雑な計算式にも対応できる「1(フラグ)」を用いた配列掛け算の応用テクニックまで図解します。

記事のポイント

  • XLOOKUPは、検索キーと検索範囲のそれぞれを「&」で連結するだけで複数条件検索ができる
  • マスタデータに不要な「作業列(ヘルパー列)」を追加する必要がなくなり表をクリーンに保てる
  • 各条件の判定結果(真偽値)を掛け合わせる(*)ことで、より複雑な条件判定の抽出も可能
  • 検索範囲と対応範囲のサイズ(開始行と終了行)が完全に一致していないとエラーになる

複数条件の検索方法:従来の手法とXLOOKUPの違い

【簡単】ExcelのXLOOKUP関数で複数条件を指定してデータ抽出する手順 - 複数条件の検索方法:従来の手法とXLOOKUPの違い の解説イメージ

Excelで複数条件を指定してデータ検索を行うためのアプローチはいくつか存在します。XLOOKUPを使用する方法が、従来のやり方と比べていかにシンプルで優れているかを比較整理しましょう。

KYO
KYO

昔、VLOOKUPで複数条件検索をするために作業列を作ったら、他のメンバーがその列を勝手に削除してしまって、数式が全部エラー(#REF!)になった苦い経験があります。XLOOKUPなら作業列を作らずに済むので、ファイルが壊れる心配もなくなりますね。

作業列も配列数式も不要になるメリット

第1の従来の手法は、マスタの左側に「作業列(結合列)」を作成する方法です。例えば、A列に店舗、B列に商品名がある場合、新しく挿入した列に =A2 & B2 という数式を入れて「東京りんご」という結合キーを作り、それをVLOOKUPで検索します。最も簡単ですが、マスタデータの列数が増え、シート全体の構造が汚くなるデメリットがありました。

第2の従来の手法は、「INDEX + MATCH関数」を配列数式として記述する方法です。作業列は不要ですが、極めて難解な数式になり、メンテナンスの難易度が非常に高い欠点がありました。

ポイント

XLOOKUPが使える環境であれば、これ以外の古い方法を選択する理由はありません。次の章から、最も基本となる「&(アンパサンド)」で結合する複数条件の書き方を見ていきましょう!

【基本編】XLOOKUPで「&」を使い複数条件を指定する基本の書き方

XLOOKUP関数で「&」を使って検索値と検索範囲の複数条件を結合して記述する基本手順

ExcelでXLOOKUP関数を使って複数条件(AND条件)を指定する最も簡単で直感的な方法が、条件同士を「&(アンパサンド)」で結合する書き方です。作業用の列を追加することなく、数式の中だけで結合キーを自動生成します。

&結合を使ったXLOOKUPの基本構文

2つの条件(店舗名と商品名など)を組み合わせてデータを検索する場合の構文は以下のようになります。

=XLOOKUP (条件1 & 条件2, 検索範囲1 & 検索範囲2, 対応範囲, [見つからない場合])

検索値となる2つのセルを & で結合して指定します(例: A2 & B2)。また、マスタデータの中でそれぞれの条件を探しに行く2つの列範囲も、同様に & で結合して指定します。

注意点として、検索値と検索範囲の結合する順番(店舗&商品など)は、完全に一致している必要があります。逆に結合してしまうと、データが合致せずエラーになってしまいます。

【応用編】「1」と「条件式の掛け算(*)」による高度な複数条件指定

条件が増えた場合やワイルドカード指定と組み合わせてより柔軟な複数条件検索を行う応用手順

「&」による結合は手軽で便利ですが、「価格が1,000円以上」といった数値の大小比較や「条件Aまたは条件B(OR条件)」のような複雑な複数条件検索が必要になるケースがあります。これを実現するのが、検索値を「1」とし、複数の条件判定式を「掛け算(*)」で結合する応用テクニックです。

条件式掛け算方式のXLOOKUP基本構文

=XLOOKUP (1, (検索範囲1=条件1) * (検索範囲2=条件2), 対応範囲, [見つからない場合])

検索値に数値の「1」を指定し、検索範囲には (範囲=条件) という判定式を作り、それぞれを「*(掛け算)」記号で繋ぎます。これにより、条件を完全に満たした行だけが「1」となり、それ以外の行はすべて「0」になるため、目的のデータを正確に抽出できます。

XLOOKUP複数条件検索でエラー(#N/A)が出たときのチェックポイント

XLOOKUP複数条件でエラーが発生したときの対処法イメージ

複数条件を指定したXLOOKUPでエラー(主に#N/A)が発生する場合、以下の原因が考えられます。

  • 検索キーと検索範囲の結合順序がズレている:検索キーを「店舗 & 商品」の順で結合したなら、検索範囲も必ず「店舗列 & 商品列」の順で結合する必要があります。
  • 範囲のサイズ(行数)が一致していない:「検索範囲1」と「検索範囲2」および「対応範囲」の開始行・終了行が完全に一致していないと、正しく計算できずエラーになります。
  • データに余計なスペースが含まれている:セル内に目に見えない半角・全角スペースが入っていると、文字が一致せず検索に失敗します。

まとめ:XLOOKUP複数条件抽出をマスターしてExcel業務を効率化!

Excelリンク解除のまとめイメージ

今回は、ExcelでXLOOKUP関数を使って複数条件(AND条件・OR条件)に合致するデータを抽出する2つの方法(&結合方式、条件式掛け算方式)と、それぞれの仕組みについて解説しました。

複数条件のデータ抽出のために、マスタに不要な列を追加して表を汚したり、手作業でデータを照合して時間を浪費したりする必要はもうありません。XLOOKUPの結合・掛け算の書き方をマスターし、どんな複雑な条件指定であってもスムーズにデータを引けるようにしましょう。

  • この記事を書いた人

KYO

現役のシステムエンジニア。普段は企業向けの開発やツールの自動化を専門にしています。データの仕組みを知り尽くしたプロの視点から、スプレッドシートやExcel、Notion、AIツールの「本当に役立つ時短テクニック」を初心者向けに分かりやすく解説中!

-Excel