Excel一覧 Excel操作・関数 検索・抽出関数(VLOOKUP・MATCH・FILTERなど) 関数の使い方

【Excel】条件に合うデータを抽出する関数|FILTER・IF・VLOOKUP徹底解説

Excelで大量のデータを扱うとき、「特定の条件に合うデータだけを取り出したい」と思うことはありませんか?

例えば次のようなケースです。

  • 「売上が10万円以上のデータだけを抽出したい」
  • 「東京都の顧客だけを一覧に表示したい」
  • 「完了」と入力された行だけを別シートに表示したい」

こうした作業を関数で自動化できれば、手作業のフィルター操作は不要になります。

この記事では、Excelの関数を使って条件に合うデータを抽出する方法を、初心者から中級者向けにわかりやすく解説します。

目次

✅ Excelで条件抽出に使う代表的な関数一覧

Excelで条件に応じてデータを抽出するには、目的別に使い分ける必要があります。

関数名主な用途特徴
FILTER条件に合うデータを自動抽出Excel 365/2021限定・最も柔軟
IF単一条件でTRUE/FALSEを返す条件判定・分岐処理に最適
VLOOKUP一致条件で隣の列の値を取得単一結果を返す検索型
INDEX+MATCH複数条件で柔軟な検索範囲構成が変わっても壊れにくい
SUMIFS/COUNTIFS数値や件数の条件抽出集計型の条件抽出に最適

まずは、最新関数「FILTER関数」を中心に、最も効率的な方法から見ていきましょう。


✅ 方法①:FILTER関数で条件に合う行を自動抽出する(Excel 365以降)

FILTER関数は、Excel 365および2021以降で利用できる「条件付き抽出専用関数」です。
複数条件の抽出や自動更新にも対応しており、従来の手動フィルターを完全に置き換えることができます。


FILTER関数の構文

"=FILTER(抽出範囲, 条件範囲=条件)"


・例1:「都道府県」が“東京”のデータだけを抽出

"=FILTER(A2:C100, B2:B100="東京")"

A列(顧客名)B列(都道府県)C列(売上)
山田商事東京200000
佐藤電機大阪150000
中村企画東京180000

→ 結果:東京の行だけが自動抽出される。


・POINT

  • 抽出範囲:表示したい列すべてを選択
  • 条件範囲:判定に使う列を指定
  • Excelの「動的配列」により、結果が自動的に展開される

・例2:「売上が10万円以上」のデータを抽出

"=FILTER(A2:C100, C2:C100>=100000)"

→ 数値条件でも問題なく動作。


・例3:「東京」かつ「売上10万円以上」

"=FILTER(A2:C100, (B2:B100="東京")*(C2:C100>=100000))"

→ 「AND条件」検索。
両方の条件を満たす行だけが抽出されます。


・例4:「東京」または「大阪」

"=FILTER(A2:C100, (B2:B100="東京")+(B2:B100="大阪"))"

→ 「OR条件」検索。
いずれかの条件に合致する行を抽出可能。


・例5:一致しない場合のエラーを防ぐ

"=IFERROR(FILTER(A2:C100, B2:B100="福岡"), "該当データなし")"

→ 条件に合うデータがないときでもエラーにならず、「該当データなし」と表示。

参考:【Excel】IFERROR関数で空白を返す方法|エラー時にすっきり見せる実務テクニック


・POINTまとめ

  • 「*」や「?」を使った部分一致も可能
  • 結果が自動更新(元データを変更すると即反映)
  • 複数条件を自由に組み合わせできる

FILTER関数は、条件抽出の関数の中でも最も強力で、実務での「一覧抽出」作業を完全に自動化できます。


✅ 方法②:IF関数で条件に一致したセルの値を取り出す(基本)

FILTER関数が使えないバージョン(Excel 2019以前)では、IF関数を使って条件を満たすデータを抽出する方法があります。


IF関数の構文

"=IF(条件, 条件を満たす場合の値, 条件を満たさない場合の値)"


・例1:「売上が10万円以上なら“対象”を返す」

"=IF(C2>=100000, "対象", "")"

顧客名売上結果
山田商事120000対象
佐藤電機80000(空白)

→ 条件を満たすセルだけ「対象」と表示。


・例2:別シートから抽出

"=IF(Sheet1!C2>=100000, Sheet1!A2, "")"

→ 条件に合うデータだけを別シートに取り出せます。

参考:【Excel】IF関数とVLOOKUP関数の併用で柔軟なデータ処理を実現する方法|条件分岐×検索


・例3:複数条件を組み合わせる

"=IF(AND(B2="東京",C2>=100000), "該当", "")"

→ 「東京」かつ「売上10万円以上」のデータのみ「該当」と返す。


・POINT

  • 小規模データでの条件判定に最適
  • FILTERが使えない環境でも代用可能
  • 大量データでは処理が重くなるため注意

✅ 方法③:VLOOKUP関数で条件一致したデータを抽出

条件に一致した1件のデータを取得したい場合は、VLOOKUP関数が便利です。
「検索条件に合う行から隣の列の値を取得する」形式で抽出します。


VLOOKUP関数の構文

"=VLOOKUP(検索値, 範囲, 列番号, 検索方法)"


・例:顧客名が一致したら売上を取得

"=VLOOKUP("山田商事", A2:C100, 3, FALSE)"

顧客名都道府県売上
山田商事東京200000
佐藤電機大阪150000

→ 「山田商事」に一致した行の「売上(3列目)」を返す。

参考:【Excel】VLOOKUP関数を別シートで使う方法とは?|構文・設定手順・実務活用を徹底解説!


・POINT

  • 検索方法は「FALSE」で完全一致にする
  • 一致しない場合は「#N/A」になる(IFERRORで回避可)
  • 複数条件には非対応(1条件のみ)

・例2:エラー時の処理を加える

"=IFERROR(VLOOKUP(D2, A2:C100, 3, FALSE), "該当なし")"

→ 一致しない場合でも「該当なし」と表示。


VLOOKUPは「1件抽出型」の条件抽出に最適で、顧客照会や商品検索などによく使われます。




✅ 方法④:INDEX+MATCH関数で柔軟に条件抽出

VLOOKUPでは検索列が左端でなければならないという制限があります。
それを解消するのが、INDEX+MATCH関数の組み合わせです。


INDEX+MATCH関数の構文

"=INDEX(返したい範囲, MATCH(検索値, 検索範囲, 0))"


・例1:都道府県が一致したら売上を返す

"=INDEX(C2:C100, MATCH("東京", B2:B100, 0))"

→ 「東京」に一致する最初の売上データを抽出。


・例2:複数条件検索

"=INDEX(C2:C100, MATCH(1, (B2:B100="東京")*(A2:A100="山田商事"), 0))"

※Ctrl + Shift + Enter で確定(配列数式)

→ 「東京」かつ「山田商事」に一致する行の売上を返す。


・POINT

  • 左右どちらの列にも対応できる
  • 列順が変わっても壊れない
  • 複数条件も柔軟に設定可能

INDEX+MATCHは、VLOOKUPより少し上級者向けですが、
構造の安定性が高く、ビジネスデータ管理で非常に重宝します。


✅ 方法⑤:SUMIFS/COUNTIFS関数で条件に合う数値を抽出・集計

単にデータを「一覧表示」するのではなく、
条件に合う合計値や件数を抽出したい場合には、
SUMIFS関数/COUNTIFS関数が最適です。


合計値や件数を抽出する構文(SUMIFS)

"=SUMIFS(合計範囲, 条件範囲1, 条件1, [条件範囲2, 条件2])"


・例1:「東京」の売上合計を求める

"=SUMIFS(C2:C100, B2:B100, "東京")"

→ 結果:東京の売上を合計して返す。


・文字の個数をカウントする構文(COUNTIFS)

"=COUNTIFS(条件範囲1, 条件1, [条件範囲2, 条件2])"


・例2:「完了」と入力された件数を数える

"=COUNTIFS(D2:D100, "完了")"

→ 「完了」ステータスの行数をカウント。


・POINT

  • SUMIFS/COUNTIFSは「数値集計型の抽出」向け
  • 複数条件にも対応
  • データ集計表(ピボットテーブル代用)に便利

✅ 方法⑥:部分一致・あいまい検索で抽出する

特定のキーワードを含むデータを抽出したい場合は、SEARCH関数FILTER関数との組み合わせで実現できます。


・例1:住所に「東京」を含む行を抽出

"=FILTER(A2:C100, ISNUMBER(SEARCH("東京",B2:B100)))"

→ 「東京都」や「東京市」などを含むデータをすべて表示。


・例2:IF関数で部分一致判定

"=IF(ISNUMBER(SEARCH("営業",A2)),"該当","")"

→ 「営業」という文字を含むセルだけ「該当」と表示。


・POINT

  • SEARCH関数は部分一致に対応(FINDは完全一致)
  • FILTERと組み合わせれば一覧抽出も可能
  • 「*」ワイルドカードを使えば柔軟な検索が可能

✅ 実務での応用例

シナリオ使用関数効果
東京の顧客だけ抽出FILTER地域別リストを自動作成
売上10万円以上のデータ表示FILTER/IF売上基準で動的に抽出
顧客名が一致した売上取得VLOOKUP/INDEX+MATCH単一検索
完了した案件だけ集計COUNTIFS進捗管理の自動化
商品名に「限定」を含む一覧表示SEARCH+FILTER部分一致抽出

✅ RPA・Power Automateとの連携で完全自動化も可能

Excel関数による条件抽出は、Power AutomateやUiPathと連携させることで、
データ処理を完全自動化することも可能です。


・例

  • 毎朝、特定条件に合う売上データを自動抽出 → メール送信
  • Excel内の「完了データ」を自動で別シートに転送
  • 条件抽出→CSV保存→クラウドアップロードまで自動化

このように、条件抽出をExcel関数で設計しておくことで、
RPAが正確に読み取り・処理できるようになります。


✅ まとめ:条件に合うデータを関数で抽出して業務を効率化しよう

  • FILTER関数:最も効率的で柔軟な抽出(複数条件も対応)
  • IF関数:単純な条件判定に最適
  • VLOOKUP関数:一致検索で隣列データを取得
  • INDEX+MATCH関数:柔軟かつ堅牢な抽出
  • SUMIFS/COUNTIFS:集計・件数抽出に最適
  • SEARCH関数:部分一致・あいまい検索にも対応

これらの関数を組み合わせれば、
どんな条件でも自動でデータを抽出できる「動的なExcelシート」を作ることができます。

データが増えても自動的に結果が反映されるため、
フィルター操作やコピペ作業の手間を大幅に削減可能です。

ぜひ、この記事で紹介した関数を活用して、
「条件抽出を自動化するExcelの仕組み」を作ってみてください。

-Excel一覧, Excel操作・関数, 検索・抽出関数(VLOOKUP・MATCH・FILTERなど), 関数の使い方