Excelの検索関数はどれを使う?XLOOKUP・FILTER・INDEX+MATCHの違いと使い分け

XLOOKUP・FILTER・INDEX+MATCHの違いと使い分けを実例付きで徹底解説

本記事には広告(PR)が含まれます。
くわしくは プライバシーポリシー をご確認ください。


Excelで表からデータを探したいとき、

「XLOOKUPとFILTERは何が違うの?」
「INDEX+MATCHも覚えたほうがいい?」
「結局、どの関数を使えばいいの?」

と迷うことがあります。

XLOOKUP・FILTER・INDEX+MATCHは、いずれもデータを検索・抽出するときに便利ですが、得意なことが少しずつ異なります。

大まかに分けると、

  • 1件の値を検索したい → XLOOKUP
  • 条件に合うデータを複数行まとめて取り出したい → FILTER
  • 旧バージョンとの互換性や、行・列を組み合わせた柔軟な検索が必要 → INDEX+MATCH

と考えるとわかりやすいでしょう。

この記事では、商品管理表を例にしながら、3つの関数の違いと使い分けを初心者向けに解説します。

「どの関数を使えばいいのかわからない」という方は、まず目的に近い項目から確認してみてください。


目次

この記事でわかること


XLOOKUP・FILTER・INDEX+MATCHの違いを一覧で比較

まずは、3つの関数の違いを簡単に整理してみましょう。

関数 得意なこと 結果 わかりやすさ 主な用途
XLOOKUP 検索値に対応するデータを取得 基本は一致した最初のデータ 商品コードから単価を取得するなど
FILTER 条件に一致するデータを抽出 複数件をまとめて表示 条件に合う商品一覧を作るなど
INDEX+MATCH MATCHで位置を探しINDEXで値を取得 基本は1件 旧Excelとの互換性や柔軟な検索

迷った場合、Microsoft 365や新しいExcelを使っているのであれば、1件検索はまずXLOOKUP、複数件の抽出はFILTERと考えるとわかりやすいでしょう。

INDEX+MATCHは構文が少し複雑ですが、旧バージョンのExcelを含む環境でファイルを共有するときなど、現在でも役立つ場面があります。

それぞれ詳しく見ていきます。


XLOOKUPとは?1件の値を探すのが得意な検索関数

XLOOKUPは、指定した値を検索し、一致した位置にある別のデータを返す関数です。

基本構文は次のとおりです。

=XLOOKUP(検索値,検索範囲,戻り範囲,[見つからない場合])

たとえば、商品コードを入力して、

  • 商品名
  • 単価
  • 在庫数

などを自動表示したいときに便利です。

VLOOKUPのように列番号を数える必要がなく、検索列より左側にあるデータも取得できます。

XLOOKUP関数で商品コードから商品単価を注文フォームへ自動表示しているExcel画面


XLOOKUPの主な特徴

  • 検索する範囲と返す範囲を別々に指定できる
  • 左方向・右方向のどちらでも検索できる
  • 見つからなかった場合の表示を数式内で指定できる
  • 完全一致だけでなく近似一致やワイルドカード検索にも対応できる
  • INDEX+MATCHより数式を読みやすくしやすい

特に新しく検索用の数式を作るのであれば、XLOOKUPを最初の候補にするとよいでしょう。

XLOOKUPの基本から複数条件、エラー対策まで詳しく確認したい方は、こちらの記事も参考にしてください。

▶  XLOOKUP関数の使い方まとめ|対応バージョン・エラー対策・複数条件検索もやさしく解説!


FILTERとは?条件に合うデータをまとめて抽出できる関数

FILTERは、指定した条件に一致するデータだけを抽出する関数です。

基本構文は次のとおりです。

=FILTER(配列,含む,[空の場合])

XLOOKUPとの大きな違いは、条件に一致するデータを複数件まとめて表示できることです。

たとえば、

「在庫数が30以上の商品だけ表示する」

「営業部の担当者をすべて取り出す」

「売上が1万円以上のデータだけ別シートに表示する」

といった使い方ができます。

FILTER関数で条件に一致する商品データを複数行抽出しているExcel画面


FILTERの主な特徴

  • 条件に一致する複数行をまとめて抽出できる
  • 結果がスピルして自動的に複数セルへ展開される
  • AND条件・OR条件を組み合わせられる
  • 条件を変更すると抽出結果も自動更新される
  • SORTなど別の動的配列関数とも組み合わせやすい

単純に「値を1つ調べる」のではなく、条件に合う一覧を作りたい場合はFILTERが向いています。

FILTER関数について詳しく知りたい方はこちらも参考にしてください。

▶  Excel FILTER関数の使い方まとめ|複数条件・別シート・使えない時の対処法も解説!


INDEX+MATCHとは?位置を探して値を取得する定番の組み合わせ

INDEX+MATCHは、2つの関数を組み合わせてデータを検索する方法です。

MATCH関数で、

「検索した値が何番目にあるか」

を調べ、その位置をINDEX関数へ渡して値を取得します。

基本形は次のとおりです。

=INDEX(返す範囲,MATCH(検索値,検索範囲,0))

XLOOKUPが登場する以前は、VLOOKUPより柔軟に検索できる方法としてよく使われていました。

INDEX関数とMATCH関数を組み合わせて商品コードから商品名を検索しているExcel画面


INDEX+MATCHの主な特徴

  • 検索列より左側の値も取得できる
  • 行と列を組み合わせた2方向検索にも応用できる
  • 古いExcel環境でも使いやすい
  • XLOOKUPより構文が長くなりやすい
  • 複雑になると初心者には数式を読み解きにくい

Microsoft 365や新しいExcelだけを使うのであれば、単純な1件検索ではXLOOKUPの方がわかりやすい場合が多いでしょう。

一方で、古いExcelとの互換性が必要なファイルや、すでにINDEX+MATCHで組まれた既存ファイルを扱う場合には、現在でも覚えておく価値があります。

詳しい使い方はこちらの記事で解説しています。

▶ INDEX・MATCH関数の使い方とVLOOKUPとの違い|柔軟な検索をやさしく解説!


1件の値を取得するならXLOOKUP

商品コードから単価など、1つの検索値に対応するデータを取得したい場合はXLOOKUPがわかりやすいです。

たとえば、商品一覧が別シートにあり、A4セルへ入力した商品コードから商品単価を取得するとします。

数式例:

=XLOOKUP($A4,商品一覧!$A$2:$A$21,商品一覧!$E$2:$E$21,"")

この数式では、

  • $A4:探したい商品コード
  • 商品一覧!$A$2:$A$21:商品コードが入っている範囲
  • 商品一覧!$E$2:$E$21:取得したい単価の範囲
  • "":見つからなかった場合は空白

を指定しています。

同じ商品コードを使って、戻り範囲を変更すれば商品名や在庫数なども取得できます。

XLOOKUP関数で商品コードから商品単価を注文フォームへ自動表示しているExcel画面
商品コードを入力すると、商品一覧から対応する単価を自動取得できます。

XLOOKUPが向いている例

  • 商品コードから単価を表示する
  • 社員番号から氏名を表示する
  • 型番から商品名を検索する
  • 注文書へマスタ情報を自動表示する
  • 見積書へ商品情報を自動表示する

「検索値を1つ指定して、それに対応する情報を取り出したい」ときは、まずXLOOKUPを検討してみましょう。


複数のデータを抽出するならFILTER

XLOOKUPは一致するデータを検索するときに便利ですが、

「条件に一致する商品を全部表示したい」

という用途ではFILTERが向いています。

たとえば、A2:H21に商品一覧があり、G列のセール価格が300円以上の商品をすべて抽出するとします。

数式例:

=FILTER(A2:H21,G2:G21>=300,"")

これだけで条件を満たした行がまとめて表示されます。

FILTER関数でセール価格300円以上の商品を一覧抽出しているExcel画面
セール価格300円以上の商品だけをFILTER関数で抽出した例です。

XLOOKUPとの違いを簡単に表すと、

XLOOKUP
→ 「この商品コードの商品単価は?」

FILTER
→ 「この条件に合う商品を全部見せて」

というイメージです。


複数条件でも抽出できる

FILTERでは複数条件も設定できます。

たとえば、

  • セール価格300円以上
  • 在庫数30以上

の両方を満たす商品だけ抽出する場合は、

=FILTER(A2:H21,(G2:G21>=300)*(H2:H21>=30),"")

と指定できます。

*を使うことでAND条件として判定しています。

FILTER関数でセール価格300円以上かつ在庫数30以上の商品を抽出しているExcel画面
価格と在庫数の2条件を満たす商品だけを抽出しています。

FILTERが向いている例

  • 一定金額以上の商品一覧
  • 特定部署の社員一覧
  • 在庫が一定数以下の商品一覧
  • 指定期間内の売上データ
  • 条件に合うデータを別シートに表示する

抽出結果を一覧表として利用したい場合は、FILTERが便利です。


INDEX+MATCHが向いているのはどんなとき?

XLOOKUPが使える環境なら、

「それならINDEX+MATCHはもう覚えなくていいの?」

と思うかもしれません。

単純な1件検索であれば、無理にINDEX+MATCHを使わず、XLOOKUPを選んでもよいでしょう。

ただし、INDEX+MATCHが役立つ場面もあります。


古いExcelを含む環境でファイルを共有するとき

XLOOKUPやFILTERは比較的新しい関数です。

そのため、古いExcelを使用している人とファイルを共有する場合は、新しい関数が使えない可能性があります。

INDEXとMATCHは以前から利用されているため、幅広いExcel環境を想定したファイルでは候補になります。

会社で共有するテンプレートなどでは、自分のExcelだけでなく、利用する人のバージョンも確認しておくと安心です。


行と列の両方を条件にして検索するとき

INDEX+MATCHは、行方向と列方向をそれぞれMATCHで探す使い方もできます。

たとえば、

  • 縦方向:商品名
  • 横方向:月
  • 交差するセル:売上

という表から、

「電卓の4月売上」

のような値を取得するときです。

このような2方向検索では、INDEXとMATCHの仕組みを理解していると柔軟に対応できます。

INDEX関数とMATCH関数で商品名と月を指定して月別売上を2方向検索しているExcel画面
商品名と月をそれぞれMATCH関数で探し、交差する売上を取得する2方向検索の例です。

既存ファイルでINDEX+MATCHが使われているとき

実務では、自分が新しく数式を作るだけとは限りません。

以前から使用しているファイルを引き継いだところ、

=INDEX(...MATCH(...))

という数式が大量に入っていることもあります。

そのような場合、すべてをXLOOKUPへ置き換える必要はありません。

正常に動いているのであればそのまま使い、修正や改修が必要になったタイミングでXLOOKUPへの置き換えを検討する方法もあります。


複数条件で1件検索するときはXLOOKUPとINDEX+MATCHのどちら?

複数条件になると、必ずINDEX+MATCHを使わなければならないわけではありません。

XLOOKUPでも複数条件検索はできます。

たとえば、

  • 商品名
  • 型番

の2条件が一致する商品の価格を取得するとします。

XLOOKUPでは、次のような方法があります。

=XLOOKUP(1,(B2:B21=J2)*(C2:C21=K2),G2:G21,"")
XLOOKUP関数で商品名と型番の2条件に一致するセール価格を検索しているExcel画面
商品名と型番の2条件を指定し、一致する商品の価格をXLOOKUPで取得しています。

条件を満たした行では、

TRUE*TRUE

が1になることを利用して検索しています。

INDEX+MATCHでも、

=INDEX(G2:G21,MATCH(1,(B2:B21=J2)*(C2:C21=K2),0))

のように検索できます。

INDEX関数とMATCH関数で商品名と型番の2条件に一致するセール価格を検索しているExcel画面
同じ複数条件検索をINDEX+MATCHで行った例です。XLOOKUPとの書き方の違いを比較できます。

新しいExcelを使っているのであれば、数式のわかりやすさを考えてXLOOKUPを選ぶ方法もあります。

一方、既存ファイルとの統一や古い環境への対応を優先するなら、INDEX+MATCHを使う選択肢もあります。

「複数条件だからINDEX+MATCH」と決めるのではなく、使用環境やファイルの管理方法まで含めて選ぶことが大切です。


結局どれを使う?目的別の選び方

ここまでの内容を、実務でよくあるケース別にまとめます。

やりたいこと おすすめ 理由
商品コードから単価を取得 XLOOKUP 1件検索をシンプルに書ける
社員番号から氏名を取得 XLOOKUP 検索範囲と戻り範囲をわかりやすく指定できる
条件に合う商品をすべて表示 FILTER 複数行をまとめて抽出できる
複数条件に合う一覧を作成 FILTER AND・OR条件を設定できる
複数条件から1件だけ取得 XLOOKUP 新しいExcelなら比較的簡潔に書ける
古いExcelでも使えるようにしたい INDEX+MATCH 旧環境との互換性を取りやすい
行と列の交差する値を検索したい INDEX+MATCH 2方向検索へ応用しやすい
既存のINDEX+MATCHファイルを保守 INDEX+MATCH 無理に変更する必要がない

迷った場合は、

1件検索 → XLOOKUP

複数件抽出 → FILTER

互換性や特殊な検索 → INDEX+MATCH

という順番で考えてみると選びやすくなります。


処理速度だけで関数を選ばない

大量のデータを扱っていると、

「XLOOKUPとFILTER、INDEX+MATCHではどれが速い?」

と気になることがあります。

ただし、実際のExcelの動作は関数名だけで決まるわけではありません。

  • 参照している範囲
  • 数式の数
  • 条件の複雑さ
  • 他の関数との組み合わせ
  • ブック全体の構成

などによっても変わります。

たとえば、

A:A

のような列全体参照を大量の数式で繰り返せば、必要な範囲だけを参照する場合より計算量が増えることがあります。

そのため、

「INDEX+MATCHだから速い」「XLOOKUPなら必ず軽い」

と単純に決めるのではなく、まずは数式を必要な範囲に絞り、同じ検索を大量に繰り返していないか確認することが大切です。

XLOOKUPを使用したファイルが重い場合はこちらの記事も参考にしてください。

XLOOKUP関数が重い・遅い原因と対処法まとめ|高速化のやり方も解説!


XLOOKUP・FILTER・INDEX+MATCHの対応バージョンにも注意

ファイルを自分だけで使う場合はあまり問題になりませんが、職場などで共有するときにはExcelのバージョンにも注意が必要です。

XLOOKUPやFILTERは、Microsoft 365やExcel 2021以降などの比較的新しいExcelで利用できます。

一方、INDEX・MATCHは以前から使われている関数なので、古いExcelとの互換性を重視する場合にも利用しやすいのが特徴です。

特に、

「自宅ではMicrosoft 365を使っているけれど、職場には古いExcelも残っている」

といった場合は注意しましょう。

新しい関数を使用したファイルを旧バージョンで開く可能性があるなら、実際に使用する環境を確認してから関数を選ぶと安心です。


検索関数をもう少し使いこなしたい方へ【PR】

XLOOKUPやINDEX+MATCHは、仕組みを読んだだけでは理解できても、

「自分の表に置き換えると数式が作れない」

と感じることがあります。

検索関数は、実際に条件や検索範囲を変えながら数式を組んでみると、使い分けが理解しやすくなります。

VLOOKUP・HLOOKUP・XLOOKUPからINDEX+MATCHまで、検索関数をまとめて練習したい方は、動画講座で実際の操作を確認しながら学ぶ方法もあります。

Excel VLOOKUP・HLOOKUP・XLOOKUPの基本からINDEX-MATCH関数までを学ぶ短期集中コース(Udemy)

※本リンクにはアフィリエイトリンク(PR)が含まれます。
くわしくはプライバシーポリシーをご確認ください。


XLOOKUP・FILTER・INDEX+MATCHのよくある質問

XLOOKUPとFILTERの一番大きな違いは何ですか?

大きな違いは、取得したい結果の数です。

XLOOKUPは検索値に対応するデータを検索する用途に向いています。

一方、FILTERは条件に一致するデータを複数件まとめて抽出できます。

「商品コードから単価を調べる」ならXLOOKUP、「在庫30個以上の商品を全部表示する」ならFILTER、と考えるとわかりやすいでしょう。


XLOOKUPがあればINDEX+MATCHは不要ですか?

新しいExcelで単純な検索をするだけなら、XLOOKUPで対応できる場面は多くあります。

ただし、古いExcelとの互換性が必要な場合や、既存ファイルでINDEX+MATCHを使用している場合、行・列を組み合わせた検索を行いたい場合などにはINDEX+MATCHも役立ちます。

そのため、完全に不要というより、新しく作る数式ではXLOOKUPを優先し、必要に応じてINDEX+MATCHを使うと考えるとよいでしょう。


複数条件ならXLOOKUPとFILTERのどちらを使いますか?

取得したい結果によって選びます。

複数条件を満たすデータから1件の値を取得したい場合はXLOOKUP、条件に一致する複数のデータを一覧表示したい場合はFILTERが向いています。

「条件の数」よりも「結果を1件取得したいのか、複数件抽出したいのか」で考えると選びやすくなります。


XLOOKUPとVLOOKUPはどちらを使えばよいですか?

XLOOKUPを利用できる環境で新しく数式を作るのであれば、XLOOKUPを選ぶと扱いやすい場合が多いでしょう。

検索列より左側も取得でき、列番号を数える必要もありません。

ただし、VLOOKUPを使った既存ファイルを無理にすべて変更する必要はありません。


FILTERで1件だけ取得することもできますか?

条件に一致するデータが1件しかなければ、結果として1件だけ表示されます。

ただし、FILTERは一致するデータを抽出するための関数なので、条件に一致するデータが複数あれば複数件表示されます。

「一致するものの中から最初の1件だけ取得したい」という目的なら、XLOOKUPの方がわかりやすい場合があります。


まとめ|1件ならXLOOKUP、複数件ならFILTERを基本に考えよう

XLOOKUP・FILTER・INDEX+MATCHは、どれが一番優れているというより、目的によって使い分けることが大切です。

基本的には、

  • 1件の値を検索する → XLOOKUP
  • 条件に一致する複数件を抽出する → FILTER
  • 旧Excelとの互換性や柔軟な検索が必要 → INDEX+MATCH

と考えるとわかりやすいでしょう。

特にMicrosoft 365など新しいExcelを使っているのであれば、単純な検索ではまずXLOOKUPを候補にし、一覧抽出にはFILTERを使う方法がおすすめです。

INDEX+MATCHは少し難しく見えますが、既存ファイルの修正や旧バージョンとの互換性が必要な場面では現在でも役立ちます。

「どの関数を使うか」で迷ったときは、関数の難しさではなく、最終的に何を表示したいのかから選んでみてください。


【関連記事】

※外部リンク※


    ※参考書籍※

    ※本ボックスにはアフィリエイトリンク(PR)が含まれます。
    くわしくは プライバシーポリシー へ。

    XLOOKUP・FILTER・INDEX+MATCHの違いと使い分けを実例付きで徹底解説
    最新情報をチェックしよう!