FILTER関数によって生成されたスピル結果から特定の列を選択し、その列のデータを集計する方法

FILTER関数によって生成されたスピル結果から特定の列を選択し、その列のデータを集計する方法

ExcelのFILTER関数は、特定の条件に基づいてデータを抽出する強力なツールです。この記事では、FILTER関数で生成されたスピル結果からINDEX関数を用いて特定の列を選択し、さらにその列のデータを集計する方法について解説します。

スピル結果から生成された列(スピル範囲の一部)をSUM、MAX、MIN、AVERAGE、といった関数で集計することができるようになります。

FILTER関数の基本

FILTER関数は、指定された範囲から条件に合致するデータのみを抽出する関数です。これにより、大量のデータから必要な情報だけを素早く取り出すことが可能になります。FILTER関数は、以下の引数を使用しています。詳しくはリンク先を確認してください。

=FILTER(配列, 含む, 空の場合)
  • 配列」はフィルタリング対象となるデータ範囲です。
  • 含む」は論理式フィルタリング条件を指定します。条件に合致する場合はTRUE、そうでない場合はFALSEを返します。
  • 空の場合」は、条件に合致するデータがない場合に表示する値を指定します。ここでは説明を省略します。

例えば下記の式はA2:E28のリストからE列が「無」であるレコードを抽出する式です。

=FILTER(A2:E28,E2:E28="無")

以下は練習用の表です。

書籍番号書名発刊日金額在庫
1001ケーススタディ民法2016/10/281400
1002交通六法2016/02/272700
1003法人税法の基礎2015/12/272700
1004会社法2014/10/272800
1005民法総則2015/03/272700
1006判例六法2016/01/272400
1007基礎法入門2014/09/272500
1008やさしい経済法2015/08/272500
1009刑法各論2016/07/282100
1010現近代民法2014/10/271400
1011会社法概論2014/04/272000
1012商法総則2014/04/271900
1013憲法2016/09/282500
1014商行為法2015/11/271600
1015倒産法入門2014/01/272300
1016破産法2015/02/271200
1017法社会学2016/10/281500
1018民事訴訟法学2016/08/282800
1019法学入門2015/09/272500
1020労働法の要点2015/05/272400
1021はやわかり刑法2016/05/283000
1022講義式憲法2016/10/283000
1023刑法講義2016/05/282600
1024会社法2016/09/271300
1025民法事例集2015/06/271200
1026六法全書2014/03/272300
1027労働法実務辞典2014/09/272700

スピル結果から特定の列を選択する方法

FILTER関数によるスピル結果から特定の列を取得するには、INDEX関数を使用します。INDEX関数は、指定された範囲内の特定の位置にあるデータを返す関数です。これをFILTER関数の結果に適用することで、求める列のデータを抽出することができます。

INDEX関数の使用例

=INDEX(FILTER関数(~~),,列番号)

この式では、FILTER関数で抽出したデータの中から特定の列番号のデータのみを取得します。列番号は第三引数で指定します。

上記で例に挙げたFILTER関数の式をINDEX関数で囲み第三引数へ「4」と入力すれば金額の列のみが作成されます。

=INDEX(FILTER(A2:E28,E2:E28="無"),,4)

集計関数を用いたデータの集計

抽出した列のデータを集計するには、SUM関数AVERAGE関数MAX関数MIN関数COUNTA関数などの集計関数を使用します。INDEX関数で取得した列をこれらの関数の引数として渡すことで、求める集計結果を得ることができます。

集計の使用例

これまでに作成した式をSUM関数で囲みます。

=SUM(INDEX(FILTER関数(~~)~~))

すなわち以下のような形式になりますね。

=SUM(INDEX(FILTER(範囲, 条件),,列番号))

この式は、FILTER関数で抽出したデータの中から特定の列をINDEX関数で取得し、その列の合計を計算します。

上の例をSUM関数で囲えば下記の式になります。FILTER関数で抽出したレコードから4列目の値を用いて合計させる式です。

=SUM(INDEX(FILTER(A2:E28,E2:E28="無"),,4))

まとめ

FILTER関数とINDEX関数、そして集計関数を組み合わせることで、複雑なデータから必要な情報を抽出し、効率的に集計することが可能になります。このテクニックは、大量のデータを扱う際に特に役立ちます。

 

コメント