残業を減らす!Officeテクニック
「一致するデータ」をすべて取り出したい! VLOOKUP関数ではできない抽出テク
2024年6月3日 06:55
一覧からデータを検索して対応する値を取り出したい時、VLOOKUP関数やXLOOKUP関数の利用を検討しますよね。商品名に対応する単価を取り出したい場合などには有効です。しかし、対応する値が複数ある場合はどうしましょう?
以下はある店舗の売り上げデータです。例えば、この一覧から「ブレンドコーヒー」のカテゴリーに属する商品名を“すべて”取り出したい場合、VLOOKUP関数やXLOOKUP関数は使えません。
商品別の売上を集計したい場合も同様です。該当する最初の1行が抽出できても意味がありませんよね。このようなケースでは、仕方なくフィルターを使う人もいるのではないでしょうか。
データをまとめて抽出できる名関数「FILTER」フィルターと似ているけれど、関数ならでは便利さが
そんな時は、Excel 2021やMicrosoft 365のExcelで使えるようになったFILTER関数を試してみてください。
指定した条件に該当するデータをまとめて抽出できます。構文は以下の通り。[配列]と[含む]の2つの引数を指定すれば動作します。
フィルターと似たような動作からあまり注目されませんが、便利に使える名関数です。今回は、FILTER関数の活用例をいくつか紹介します。
カテゴリーに一致するデータを抽出する
冒頭に紹介したカテゴリーに属するデータを抽出してみましょう。
単純にFILTER関数を使うと、一致するデータを“すべて”抽出できます。しかし、重複しているデータは不要なので、UNIQUE関数を組み合わせます。
なお、ここでは対象のデータを「注文表」という名前のテーブルに変換してあるので、数式中の引数は構造化参照で表現されます。
TRANSPOSE関数で横に並べる
結果を横方向に並べたいときはどうすればいいでしょうか? コピーして貼り付け時に[行/列の入れ替え]を選択する手もありますが、TRANSPOSE関数を組み合わせれば、そのまま横に並びます。引数は先ほどの数式そのままです。
このようにしておけば、カテゴリー名の一覧を用意し、数式をコピーすることで、重複のない横方向のリストを一気に作成する、といったこともできます。
カテゴリーごとに売上を集計する
SUM関数と組み合わせることで集計することも可能です。FILTER関数の引数[配列]に抽出対象の「売上」列、[含む]にはカテゴリーを絞り込む条件を指定します。
こうすると、引数[含む]に指定する条件を変更するだけで、商品名ごとの集計も可能です。条件を指定した集計では、SUMIFS関数が使われることが多いですが、FILTER関数でも同じように処理できます。