FILTER関数とは
FILTER関数とは表などのデータ群から条件に基づき表を行ごと抜きだしてくる関数です。
こちらの関数はExcel 365やExcel 2021以降のバージョンより使用できます。
この関数が登場するまでは何を使っていたのかというと
VLOOKUP関数やINDEX+MATCH関数などでした。
ですがこちらは単一の行しか持ってくることができず不便でした。
そこで登場したのがFILTER関数というわけです。
FILTER関数の基本形
=FILTER(配列, 条件, [条件に合わない場合の値])
※三つ目の引数は省略しても大丈夫です。
FILTER関数の使い方
例1:範囲から単一の条件に一致する場合
=FILTER(B3:F10,C3:C10="女")

こちらはC列に「女」という値が入っている行を抜き出している例です。
=FILTER(B3:F10,B3:B10<40)

=だけでなく数値の場合は<や>なども使って条件を指定できます。
例2:範囲から複数の条件に一致する場合
=FILTER(B3:F10,(C3:C10="男")*(F3:F10="営業部"))

条件式をカッコで囲い、*でつなげることによりAND検索ができます。
また、*を+にすることでOR検索もできるようになります。
例3:検索値が範囲に存在しない場合
=FILTER(B3:F10,E3:E10="徳島県","該当なし")

三つ目の引数を使うことで条件式に合う行がない場合の表示する文字列を指定することができ、エラーを回避することができます。
例4:UNIQUEやSORT関数との組み合わせ
UNIQUE関数
=UNIQUE(FILTER(配列, 条件, 条件に合わない場合の値))
UNIQUE関数を使うことで重複データの除外ができます。
SORT関数
=SORT(FILTER(配列, 条件, 条件に合わない場合の値),[並べ替えインデックス],[並べ替え順序],[並べ替え基準])
並べ替えインデックス:どの列を基準に並べ替えをするか
並べ替え順序:昇順か降順かを指定
並べ替え基準:TRUEだと列で(横に)並べ替え、FALSEだと行で(縦に)並べ替え
これらは省略可能であり、省略すると範囲の一列目が基準になり昇順で縦に並び替えられます。
SORT関数を使うことで抽出してきた表の並べ替えができます。
例5:応用編[特定の列のみを抜き出す方法]
=FILTER(FILTER(B3:F11,C3:C11="女"),{1,0,1,1,0})

FILTER関数を二つ使うことで一つ目のFILTER関数で抽出する行を決め、二つ目のFILTER関数で抽出する列を決定します。
まとめ
VLOOKUPは単一データの検索にはとても有用な関数ですが逆に言えばそれしかできません。
一方、FILTER関数は使いこなせるととても強力な関数で、Excelを簡易的なデータベースのように扱うことができ、他の関数と組み合わせるともっと使い方が広がりますので是非試してみてください!
参考
著者: M.Y (株式会社ウィズツーワン)

