ExcelのFILTER関数は、条件に合う行を元の表から別の場所へ取り出す関数です。営業部だけ、未完了だけ、金額が一定以上の案件だけ、といった一覧を数式で作れます。
表のフィルターボタンで行を非表示にする操作とは異なり、抽出結果を別の範囲に表示します。この記事では、案件表を例に、単一条件からAND・OR条件へ順番に広げます。
FILTERを使えるExcelと、結果を置く場所
Microsoft 365、Excel 2021・2024など、FILTERに対応する環境が必要です。Excel 2016・2019では利用できません。対象製品と基本構文はMicrosoft公式のFILTER関数ページで確認できます。
数式は抽出結果の左上となるセルに一つ入れます。結果は周囲のセルへ自動で広がるので、元の表と重ならない場所に配置してください。元データがA:D列なら、F列以降や別シートを使うと整理しやすくなります。
まずは「未完了」の案件だけを抽出する
A1:D5に次の表がある例です。A列が案件、B列が部署、C列が状態、D列が金額です。F1:I1には同じ見出しを用意し、F2へ式を入れます。
| 案件 | 部署 | 状態 | 金額 |
|---|---|---|---|
| A案 | 営業 | 未完了 | 12000 |
| B案 | 制作 | 完了 | 8000 |
| C案 | 営業 | 完了 | 15000 |
| D案 | 制作 | 未完了 | 6000 |
=FILTER(A2:D5,C2:C5="未完了","該当なし")
結果はA案とD案の2行です。最初の引数が取り出す表、次が各行を採用する条件、最後が一致する行がない場合の表示です。見出しは抽出対象に含めていません。
抽出する表が2~5行なら、条件の範囲も2~5行に揃えます。A2:D100に変更するときは、C2:C100も同時に変更してください。
AND条件は掛け算で組み合わせる
「営業」かつ「未完了」の案件を取り出す例です。それぞれの条件を括弧で囲み、掛け算でつなぎます。
=FILTER(A2:D5,(B2:B5="営業")*(C2:C5="未完了"),"該当なし")
結果はA案だけになります。営業のC案は完了済み、未完了のD案は制作なので対象外です。条件を日本語で「両方満たす」と説明できる場合はANDで考えます。
金額条件を組み合わせることもできます。次の式では、未完了かつ1万円以上の案件を抽出します。
=FILTER(A2:D5,(C2:C5="未完了")*(D2:D5>=10000),"該当なし")
OR条件は足し算で組み合わせる
「営業」または「未完了」のどちらかに当てはまる案件は、次の式で取り出せます。
=FILTER(A2:D5,(B2:B5="営業")+(C2:C5="未完了"),"該当なし")
この例ではA案・C案・D案の3行です。A案は両方の条件を満たしますが、同じ行が2回出力されるわけではありません。「どちらかを満たす」のか「両方を満たす」のかを、式を作る前に決めましょう。
セルの入力に合わせて抽出条件を変える
K2に部署名を入力し、その部署の行を抽出する例です。
=FILTER(A2:D5,B2:B5=K2,"該当なし")
K2へ「営業」と入力すればA案・C案、「制作」ならB案・D案になります。条件を式の中に直接書かず、入力欄を設けると、数式を編集せずに一覧を切り替えられます。
K2が空欄のときに何を表示するかも決めておきます。入力前は案内だけにしたいなら、次のようにIFで分岐します。
=IF(K2="","部署を入力してください",FILTER(A2:D5,B2:B5=K2,"該当なし"))
#CALC!・#SPILL!・#VALUE!の見方
| 表示 | 先に確認する内容 |
|---|---|
| #CALC! | 一致する行がない状態で、第3引数を省略していないか |
| #SPILL! | 結果の展開先に値・数式・結合セルなどがないか |
| #VALUE! | 抽出範囲と条件範囲の大きさ、条件側のエラー |
| #NAME? | 関数名とExcelの対応状況 |
該当なしによる#CALC!は、Microsoftのエラー解説にも説明があります。第3引数は該当なしの場合の指定なので、数式のあらゆるエラーを消す機能ではありません。
スピルする数式はExcelテーブルの内側に配置できません。元データをテーブルにし、結果の数式はテーブルの外に置く構成にします。詳しくは動的配列とスピルの公式説明を確認してください。
業務用の一覧へ広げる前の確認
「該当する行が一件」「複数件」「ゼロ件」の3パターンを試し、手で選んだ結果と一致するか確かめます。金額列に数値と文字列が混ざっている場合や、部署名に余分な空白がある場合は、元データも整えてください。
FILTERの結果は元の表に連動します。抽出結果を手入力で修正する運用にせず、修正は元データへ行います。確定時点の一覧を残したい場合は、別の場所へ値としてコピーし、抽出日時も記録すると、後から照合できます。
