【Excel】条件に合うものをすべて抽出する関数!

特定の条件に一致する複数のデータを、リストからすべて取り出す方法を解説します。 最新の FILTER関数 を使った方法はもちろん、旧バージョンでも VLOOKUP関数 を使って代用する方法を解説しているので、ぜひ参考にしてみてください。

スポンサーリンク

FILTER関数を使う(Excel 2021以降)

【Excel】条件に合うものをすべて抽出する関数!

FILTER関数を使うと、「条件」と一致するデータを「抽出範囲」からすべて抽出してくれます。

例:=FILTER(B2:B5,A2:A5=D2)

💡 ポイント:

  • 抽出範囲:結果として抽出したい範囲を指定します。(例:B2:B5)
  • 条件:検索する範囲と、条件を指定します。(例:A2:A5=D2)

FILTER関数の引数:(抽出範囲, 条件, [空の場合])


📖 第3引数「空の場合」とは?:

  • 検索範囲に条件と一致するデータがなかった時に表示する文字を指定できます。
    • 例:=FILTER(B2:B5, A2:A5=D2, "なし")
スポンサーリンク

VLOOKUP関数を使う(Excel 2019以前)

【Excel】条件に合うものをすべて抽出する関数!

手順1:作業列を作ってデータに番号を振る

  1. データの左側に列を挿入し、作業列を作ります。
  2. 以下のような数式を入力し、「野菜1」「野菜2」のような一意のデータを作ります。
    • 例:=B2&COUNTIF($B$2:B2, B2)

COUNTIF関数の引数:(検索範囲, 条件)


💡 ポイント:

  • 検索範囲の開始位置のみ固定(例:$B$2:B2することで、オートフィルでコピーした時に範囲が1行ずつ下に広がります。
【Excel】条件に合うものをすべて抽出する関数!

手順2:VLOOKUP関数で順番に抽出する

  1. 抽出したいセルに、以下のような数式を入力します。
    • 例:=IFERROR(VLOOKUP($E$2&ROW(A1),$A$2:$C$5, 3, FALSE), "")
  2. VLOOKUP関数は範囲の一番左(作業列)から「果物1」「果物2」…を順番に検索し、範囲の3列目(商品名)から値を抽出します。

💡 ポイント:検索値と検索範囲は$A$2:$C$5のように絶対参照($を付ける)にします。

VLOOKUP関数の引数:(検索値, 検索範囲, 列番号, [検索の型])


【数式の解説】

  • 検索値:検索値とROW(A1)を結合することで、数式を下にコピーするたびに、検索値が「果物1」「果物2」…と自動で切り替わります。
  • IFERROR関数:一致するデータがなくなった時に出るエラーを非表示にしています。

📖 参考:さらに詳しい解説は「FILTER関数が使えない場合の代用方法」の記事をご覧ください。

スポンサーリンク

別シートから抽出する

FILTER関数の場合:

【Excel】条件に合うものをすべて抽出する関数!

以下のように入力します。

例: =FILTER(別シート!B2:B5, 別シート!A2:A5=A2)

FILTER関数の引数:(抽出範囲, 条件, [空の場合])


💡 ポイント:

  • シート名に数字やスペースが含まれる場合、'2026-5'! のようにシングルクォーテーション('')で囲む必要があります。マウスでシートを選択すれば自動で入力されます。

VLOOKUP関数の場合:

以下のように入力します。

例: =VLOOKUP($A$2&ROW(A1), 別シート!$A$2:$C$5, 3, FALSE)

VLOOKUP関数の引数:(検索値, 検索範囲, 列番号, [検索の型])


💡 ポイント:

  • FILTER関数と同様に、シート名に数字やスペースがある場合は ' ' で囲みます。
スポンサーリンク

関連記事

タイトルとURLをコピーしました