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

FILTER関数を使うと、「条件」と一致するデータを「抽出範囲」からすべて抽出してくれます。
例:=FILTER(B2:B5,A2:A5=D2)
💡 ポイント:
- 抽出範囲:結果として抽出したい範囲を指定します。(例:B2:B5)
- 条件:検索する範囲と、条件を指定します。(例:A2:A5=D2)
FILTER関数の引数:(抽出範囲, 条件, [空の場合])
📖 第3引数「空の場合」とは?:
- 検索範囲に条件と一致するデータがなかった時に表示する文字を指定できます。
- 例:
=FILTER(B2:B5, A2:A5=D2, "なし")
- 例:
VLOOKUP関数を使う(Excel 2019以前)

手順1:作業列を作ってデータに番号を振る
- データの左側に列を挿入し、作業列を作ります。
- 以下のような数式を入力し、「野菜1」「野菜2」のような一意のデータを作ります。
- 例:
=B2&COUNTIF($B$2:B2, B2)
- 例:
COUNTIF関数の引数:(検索範囲, 条件)
💡 ポイント:
- 検索範囲の開始位置のみ固定(例:
$B$2:B2)することで、オートフィルでコピーした時に範囲が1行ずつ下に広がります。

手順2:VLOOKUP関数で順番に抽出する
- 抽出したいセルに、以下のような数式を入力します。
- 例:
=IFERROR(VLOOKUP($E$2&ROW(A1),$A$2:$C$5, 3, FALSE), "")
- 例:
- VLOOKUP関数は範囲の一番左(作業列)から「果物1」「果物2」…を順番に検索し、範囲の3列目(商品名)から値を抽出します。
💡 ポイント:検索値と検索範囲は$A$2:$C$5のように絶対参照($を付ける)にします。
VLOOKUP関数の引数:(検索値, 検索範囲, 列番号, [検索の型])
【数式の解説】
- 検索値:検索値とROW(A1)を結合することで、数式を下にコピーするたびに、検索値が「果物1」「果物2」…と自動で切り替わります。
- IFERROR関数:一致するデータがなくなった時に出るエラーを非表示にしています。
📖 参考:さらに詳しい解説は「FILTER関数が使えない場合の代用方法」の記事をご覧ください。
別シートから抽出する
FILTER関数の場合:

以下のように入力します。
例: =FILTER(別シート!B2:B5, 別シート!A2:A5=A2)
FILTER関数の引数:(抽出範囲, 条件, [空の場合])
💡 ポイント:
- シート名に数字やスペースが含まれる場合、
'2026-5'!のようにシングルクォーテーション('')で囲む必要があります。マウスでシートを選択すれば自動で入力されます。
VLOOKUP関数の場合:

以下のように入力します。
例: =VLOOKUP($A$2&ROW(A1), 別シート!$A$2:$C$5, 3, FALSE)
VLOOKUP関数の引数:(検索値, 検索範囲, 列番号, [検索の型])
💡 ポイント:
- FILTER関数と同様に、シート名に数字やスペースがある場合は
' 'で囲みます。