Excelで大量のデータを扱うとき、「特定の条件に合うデータだけを取り出したい」と思うことはありませんか?
例えば次のようなケースです。
- 「売上が10万円以上のデータだけを抽出したい」
- 「東京都の顧客だけを一覧に表示したい」
- 「完了」と入力された行だけを別シートに表示したい」
こうした作業を関数で自動化できれば、手作業のフィルター操作は不要になります。
この記事では、Excelの関数を使って条件に合うデータを抽出する方法を、初心者から中級者向けにわかりやすく解説します。
目次
- ✅ Excelで条件抽出に使う代表的な関数一覧
- ✅ 方法①:FILTER関数で条件に合う行を自動抽出する(Excel 365以降)
- ・FILTER関数の構文
- ・例1:「都道府県」が“東京”のデータだけを抽出
- ・例2:「売上が10万円以上」のデータを抽出
- ・例3:「東京」かつ「売上10万円以上」
- ・例4:「東京」または「大阪」
- ・例5:一致しない場合のエラーを防ぐ
- ✅ 方法②:IF関数で条件に一致したセルの値を取り出す(基本)
- ・IF関数の構文
- ・例1:「売上が10万円以上なら“対象”を返す」
- ・例2:別シートから抽出
- ・例3:複数条件を組み合わせる
- ✅ 方法③:VLOOKUP関数で条件一致したデータを抽出
- ・VLOOKUP関数の構文
- ・例:顧客名が一致したら売上を取得
- ・例2:エラー時の処理を加える
- ✅ 方法④:INDEX+MATCH関数で柔軟に条件抽出
- ・INDEX+MATCH関数の構文
- ・例1:都道府県が一致したら売上を返す
- ・例2:複数条件検索
- ✅ 方法⑤:SUMIFS/COUNTIFS関数で条件に合う数値を抽出・集計
- ・合計値や件数を抽出する構文(SUMIFS)
- ・例1:「東京」の売上合計を求める
- ・文字の個数をカウントする構文(COUNTIFS)
- ・例2:「完了」と入力された件数を数える
- ✅ 方法⑥:部分一致・あいまい検索で抽出する
- ・例1:住所に「東京」を含む行を抽出
- ・例2:IF関数で部分一致判定
- ✅ 実務での応用例
- ✅ RPA・Power Automateとの連携で完全自動化も可能
- ・例
- ✅ まとめ:条件に合うデータを関数で抽出して業務を効率化しよう
✅ 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の仕組み」を作ってみてください。