Excelでよく使う検索・抽出系の関数には、「XLOOKUP」「FILTER」「INDEX+MATCH」など、複数の選択肢があります。
どれも便利な機能ですが、「何をしたいか」によって使い分けが必要です。
たとえば、商品コードから単価を調べたいときと、条件に合う商品だけ一覧表示したいときでは、使う関数が異なります。
本記事では、以下のような商品管理表を例に、3つの関数の違いや使い分けのポイントをわかりやすく解説します。
初心者の方は、まずこちらの記事(XLOOKUPの基本)をチェックしてから読み進めていただくとスムーズです。
3つの関数の特徴と違いをざっくり把握しよう
Excelで「検索・抽出」を行う関数は、用途や目的によって向き不向きがあります。
ここでは、代表的な3つの関数「XLOOKUP」「FILTER」「INDEX+MATCH」について、それぞれの特徴を簡単に整理してみましょう。
XLOOKUPの特徴
XLOOKUP
は、従来のVLOOKUP
やHLOOKUP
の弱点を補った新しい検索関数です。
-
構文がシンプルで読みやすい
→ 例:=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関数については以下の記事をご参考ください。
→Excel FILTER関数の使い方まとめ|複数条件・別シート・使えない時の対処法も解説!【事務作業がグッと楽に】
INDEX+MATCHの特徴
INDEX
とMATCH
を組み合わせることで、柔軟な検索が可能になります。古くから使われている構文であり、旧バージョンのExcelでも使えるのが強みです。
主な特徴:
-
検索方向が自由(左方向もOK)
-
複数条件や複雑な範囲指定にも対応できる
-
構文がやや長く、可読性にはやや難あり
例:=INDEX(返す範囲, MATCH(検索値, 検索範囲, 0))
おすすめシーン:
「部門・担当者・日付など複数条件で1件だけ値を取得したい」ような、細かい条件での柔軟な検索に適しています。
※入力例:
=INDEX(E2:E11,MATCH(1,(A2:A11=G2)*(B2:B11=H2)*(C2:C11=I2),0))
入力例では、「営業部門」「担当者」「日付」3つの条件を指定しています。
INDEX+MATCHについては以下の記事をご参考ください。
→INDEX・MATCH関数の使い方とVLOOKUPとの違い|柔軟な検索をやさしく解説!
目的別!どの関数を選べばいい?【実例付き比較】
ここからは、実際のシチュエーションを想定して、どの関数を使うのが最適かを比較していきます。
使用するのは、以下のような「商品管理表」のデータです:
商品コード・商品名・型番・仕入先・仕入れ値・商品単価・セール価格・在庫数
例①「商品コードから単価を取得したい」→ XLOOKUPが最適
目的: 注文書などに入力された商品コードに対して、商品単価や在庫数を自動表示させたい。
構文例:
-
:検索する商品コード$A4
-
商品一覧!$A$2:$A$21
:商品コードの列 -
商品一覧!$E$2:$E$21
:商品単価の列
ポイント:
-
列番号を数えなくてよいため、
VLOOKUP
よりも直感的。 -
商品コードさえあれば、型番やセール価格なども同じように引けます。
-
データ件数が増えても可読性が落ちにくいのが利点。
実務での活用例:
-
注文入力フォームで、商品コード入力 → 単価や在庫を自動取得
-
見積書の自動生成など
例②「売上が1万円以上の商品だけ一覧表示したい」→ FILTERが最適
目的: 条件に合う商品だけを抜き出し、リスト化したい。
構文例:
-
A2:H21
:商品データ全体 -
G2:G21>=300
:セール価格が300円以上の行のみ抽出
ポイント:
-
元データの形式を維持したまま、該当行だけを抜き出せる。
-
スピル機能により、行数に応じて結果が自動展開。
-
別シートに表示すれば、レポートや資料にも活用可能。
実務での活用例:
-
セール対象商品の抽出
-
一定価格以上の在庫一覧の作成
例③「部門×担当者×日付で一致するデータを検索したい」→ INDEX+MATCHが最適
目的: 商品管理よりも複雑な条件で、1件だけ該当データを取得したい場合に活躍します。
ここでは例として「商品名×型番」で検索を行います。
構文例(複数条件):
※配列数式なので、Ctrl + Shift + Enter(または365ではそのまま)
-
G2:G21
:セール価格を返す範囲 -
=INDEX(G2:G21, MATCH(1, (B2:B21=J2)*(C2:C21=K2), 0))
:複数条件の一致
ポイント:
-
組み合わせ条件で検索したいときに柔軟に対応。
-
FILTERよりも「1件だけ取得したい」場合に向いています。
-
初心者にはやや難解な構文だが、カスタマイズ性は高い。
実務での活用例:
-
型番違いの商品が複数ある場合のセール価格表示
-
得意先ごとの掛け率対応にも応用可
選び方のコツと注意点【処理速度・可読性・対応バージョン】
ここでは、関数の特徴だけでなく、**実務で使う上で気になる「動作の重さ」や「見やすさ」「バージョン制限」**について解説します。
関数を選ぶ際の判断材料として、ぜひ参考にしてください。
処理速度・動作の重さを比較
大量データを扱う場合、関数によって処理速度に差が出ることがあります。
関数 | 特徴 | データ量が多いときの注意点 |
---|---|---|
XLOOKUP | シンプルで高速。旧関数の置き換えにも最適 | 範囲が広くなると処理がやや重くなる場合あり |
FILTER | 結果を一括表示できて便利 | スピルの出力先に注意。重複・衝突でエラーになることも |
INDEX+MATCH | 高速かつ安定。複雑条件にも強い | 記述が複雑になりやすく、数式ミスの原因になりやすい |
📌 検証ポイント:
実際に100件以上のデータで並列処理を行うと、FILTER
は特に再計算時に遅くなる傾向があります。
可読性・保守性を比較
他人とファイルを共有したり、後から見返したりする場合、「どの関数がわかりやすいか」も重要なポイントです。
関数 | 可読性 | 修正のしやすさ |
---|---|---|
XLOOKUP | ◎ シンプルで読みやすい | ◎ 範囲名を使うとさらに明確に |
FILTER | ◯ 条件が複雑になると読みにくいことも | △ 複数条件でのミスに注意 |
INDEX+MATCH | △ 構文が長く初心者にはやや不親切 | ◯ 一部の範囲変更には柔軟に対応可能 |
対応バージョンと実務利用の観点
関数によっては、使用できる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以降対応 |
関連記事リンク(想定)
- Excel FILTER関数の使い方まとめ|複数条件・別シート・使えない時の対処法も解説!【事務作業がグッと楽に】
- INDEX・MATCH関数の使い方とVLOOKUPとの違い|柔軟な検索をやさしく解説!
✅ 終わりに
今回の例では、商品管理をベースにそれぞれの関数の使いどころを比較しましたが、
実務ではこれらを組み合わせて使う場面も多いです。
慣れてきたら、「XLOOKUP+IF」「FILTER+SORT」などの応用にもチャレンジしてみてください!