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

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

Excelでよく使う検索・抽出系の関数には、「XLOOKUP」「FILTER」「INDEX+MATCH」など、複数の選択肢があります。

どれも便利な機能ですが、「何をしたいか」によって使い分けが必要です。

たとえば、商品コードから単価を調べたいときと、条件に合う商品だけ一覧表示したいときでは、使う関数が異なります。

本記事では、以下のような商品管理表を例に、3つの関数の違いや使い分けのポイントをわかりやすく解説します。

初心者の方は、まずこちらの記事(XLOOKUPの基本)をチェックしてから読み進めていただくとスムーズです。

3つの関数の特徴と違いをざっくり把握しよう

Excelで「検索・抽出」を行う関数は、用途や目的によって向き不向きがあります。
ここでは、代表的な3つの関数「XLOOKUP」「FILTER」「INDEX+MATCH」について、それぞれの特徴を簡単に整理してみましょう。


XLOOKUPの特徴

XLOOKUPは、従来のVLOOKUPHLOOKUPの弱点を補った新しい検索関数です。XLOOKUP関数主な特徴:

  • 構文がシンプルで読みやすい
     → 例:=XLOOKUP(検索値, 検索範囲, 返す範囲)

  • 上方向への検索や部分一致(ワイルドカード)にも対応
     → 昇順・降順を気にせず使えるのが便利です。

  • ただし、複数条件で検索する場合は工夫が必要
     → 例えば、検索値1 & 検索値2 のように連結して使う必要があります。

おすすめシーン:

「商品コードから単価や在庫数を一発で調べたい」といった単一条件での1件検索に最適です。


FILTER関数の特徴

FILTER関数は、指定した条件に一致する複数の行データを一括抽出できる関数です(※Excel 365以降で使用可能)。

主な特徴:

  • 複数行の抽出結果を一気に表示できる「スピル」機能
     → 別表を自動で生成するような感覚で使えます。

  • 条件を柔軟に組み合わせることができる(論理式によるAND・OR対応)

  • 対象の列数や出力位置に注意が必要(スピルの範囲が他のセルと重なるとエラーに)

おすすめシーン:

「売上が1万円以上の商品だけ表示したい」などの条件付き一覧抽出に便利です。

↓FILTER関数を利用した例
F列(売値)が300円以上かつ在庫数30以上のデータを抽出しています。
入力例:=FILTER(A2:H21,(F2:F21>=300)*(H2:H21>=30),””)

FILTER関数利用例

FILTER関数については以下の記事をご参考ください。

Excel FILTER関数の使い方まとめ|複数条件・別シート・使えない時の対処法も解説!【事務作業がグッと楽に】


INDEX+MATCHの特徴

INDEXMATCHを組み合わせることで、柔軟な検索が可能になります。古くから使われている構文であり、旧バージョンのExcelでも使えるのが強みです。

主な特徴:

  • 検索方向が自由(左方向もOK)

  • 複数条件や複雑な範囲指定にも対応できる

  • 構文がやや長く、可読性にはやや難あり

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

おすすめシーン:

「部門・担当者・日付など複数条件で1件だけ値を取得したい」ような、細かい条件での柔軟な検索に適しています。

INDEX関数とMATCH関数の連携

※入力例:
=INDEX(E2:E11,MATCH(1,(A2:A11=G2)*(B2:B11=H2)*(C2:C11=I2),0))

入力例では、「営業部門」「担当者」「日付」3つの条件を指定しています。

INDEX+MATCHについては以下の記事をご参考ください。

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

目的別!どの関数を選べばいい?【実例付き比較】

ここからは、実際のシチュエーションを想定して、どの関数を使うのが最適かを比較していきます。
使用するのは、以下のような「商品管理表」のデータです:

商品コード・商品名・型番・仕入先・仕入れ値・商品単価・セール価格・在庫数


例①「商品コードから単価を取得したい」→ XLOOKUPが最適

目的: 注文書などに入力された商品コードに対して、商品単価や在庫数を自動表示させたい。

構文例:

=XLOOKUP($A4,商品一覧!$A$2:$A$21,商品一覧!$E$2:$E$21,"")
  • $A4:検索する商品コード

  • 商品一覧!$A$2:$A$21:商品コードの列

  • 商品一覧!$E$2:$E$21:商品単価の列

XLOOKUP関数活用例・注文フォーム

ポイント:

  • 列番号を数えなくてよいため、VLOOKUPよりも直感的。

  • 商品コードさえあれば、型番やセール価格なども同じように引けます。

  • データ件数が増えても可読性が落ちにくいのが利点。

実務での活用例:

  • 注文入力フォームで、商品コード入力 → 単価や在庫を自動取得

  • 見積書の自動生成など


例②「売上が1万円以上の商品だけ一覧表示したい」→ FILTERが最適

目的: 条件に合う商品だけを抜き出し、リスト化したい。

構文例:

=FILTER(A2:H21, G2:G21>=300)
  • A2:H21:商品データ全体

  • G2:G21>=300:セール価格が300円以上の行のみ抽出

FILTER関数利用例・セール価格絞り込み

 

ポイント:

  • 元データの形式を維持したまま、該当行だけを抜き出せる。

  • スピル機能により、行数に応じて結果が自動展開。

  • 別シートに表示すれば、レポートや資料にも活用可能。

実務での活用例:

  • セール対象商品の抽出

  • 一定価格以上の在庫一覧の作成


例③「部門×担当者×日付で一致するデータを検索したい」→ INDEX+MATCHが最適

目的: 商品管理よりも複雑な条件で、1件だけ該当データを取得したい場合に活躍します。
ここでは例として「商品名×型番」で検索を行います。

構文例(複数条件)

=INDEX(G2:G21, MATCH(1, (B2:B21="電卓")*(C2:C21="CA-GN"), 0))

※配列数式なので、Ctrl + Shift + Enter(または365ではそのまま)

  • G2:G21:セール価格を返す範囲

  • =INDEX(G2:G21, MATCH(1, (B2:B21=J2)*(C2:C21=K2), 0)):複数条件の一致

INDEX・MATCH活用例_複数条件絞り込み

ポイント:

  • 組み合わせ条件で検索したいときに柔軟に対応。

  • FILTERよりも「1件だけ取得したい」場合に向いています。

  • 初心者にはやや難解な構文だが、カスタマイズ性は高い。

実務での活用例:

  • 型番違いの商品が複数ある場合のセール価格表示

  • 得意先ごとの掛け率対応にも応用可

選び方のコツと注意点【処理速度・可読性・対応バージョン】

ここでは、関数の特徴だけでなく、**実務で使う上で気になる「動作の重さ」や「見やすさ」「バージョン制限」**について解説します。
関数を選ぶ際の判断材料として、ぜひ参考にしてください。


処理速度・動作の重さを比較

大量データを扱う場合、関数によって処理速度に差が出ることがあります。

関数 特徴 データ量が多いときの注意点
XLOOKUP シンプルで高速。旧関数の置き換えにも最適 範囲が広くなると処理がやや重くなる場合あり
FILTER 結果を一括表示できて便利 スピルの出力先に注意。重複・衝突でエラーになることも
INDEX+MATCH 高速かつ安定。複雑条件にも強い 記述が複雑になりやすく、数式ミスの原因になりやすい

📌 検証ポイント:
実際に100件以上のデータで並列処理を行うと、FILTERは特に再計算時に遅くなる傾向があります。


可読性・保守性を比較

他人とファイルを共有したり、後から見返したりする場合、「どの関数がわかりやすいか」も重要なポイントです。

関数 可読性 修正のしやすさ
XLOOKUP ◎ シンプルで読みやすい ◎ 範囲名を使うとさらに明確に
FILTER ◯ 条件が複雑になると読みにくいことも △ 複数条件でのミスに注意
INDEX+MATCH △ 構文が長く初心者にはやや不親切 ◯ 一部の範囲変更には柔軟に対応可能
補足:FILTERやMATCHの中にIFやTEXT関数が入り混じると、可読性が一気に落ちるため注意が必要です。

対応バージョンと実務利用の観点

関数によっては、使用できるExcelのバージョンが異なるため、チーム内での共有や旧バージョン環境での運用を想定する場合は要注意です。

関数 対応バージョン 備考
XLOOKUP Excel 365 / Excel 2021以降 旧Excelでは使えないため共有時に注意
FILTER Excel 365のみ 完全な新機能。バージョン確認必須
INDEX+MATCH Excel 2007以降 最も汎用性が高く、古い環境でも安心

チームで共有する場合や、マクロ・テンプレートに埋め込む場合は、INDEX+MATCHが依然として安定した選択肢となります。

まとめ|目的に応じて最適な関数を使い分けよう

検索・抽出系の関数はそれぞれ特徴があり、「どの目的で使うか」によって最適な関数は変わってきます。
今回ご紹介した3つの関数について、以下のように使い分けるのがポイントです。


 使用目的別のおすすめ関数

使用目的 おすすめ関数 理由
商品コードから単価や在庫を調べたい XLOOKUP 構文がシンプルで、読みやすく修正しやすい
条件に合う商品を一覧表示したい FILTER 条件付きで複数行の抽出が可能(スピル対応)
型番や仕入先など複数条件で1件検索 INDEX+MATCH 柔軟な条件指定が可能、旧バージョンにも対応

それぞれの関数の特徴まとめ

関数名 特徴 対応バージョン
XLOOKUP ワイルドカード・上方向検索も対応。構文が簡潔 Excel 365 / 2021以降
FILTER 条件付きで複数行を抽出。スピル表示対応 Excel 365(限定)
INDEX+MATCH 複雑条件や左方向検索も可。汎用性が高い Excel 2007以降対応

関連記事リンク(想定)


✅ 終わりに

今回の例では、商品管理をベースにそれぞれの関数の使いどころを比較しましたが、
実務ではこれらを組み合わせて使う場面も多いです。

慣れてきたら、「XLOOKUP+IF」「FILTER+SORT」などの応用にもチャレンジしてみてください!