Excelにはオートフィルタという便利機能がある。表題に表示されるオートフィルタ矢印をクリックして、リストから目的のデータを選択するだけで、簡単にデータの絞り込みが行えるスグレモノだ。
オートフィルタを設定するには、リストの中にアクティブセルを移動して、「ホーム」タブ「編集」グループにある「並べ替えとフィルタ」をクリックし、「フィルタ」を選ぶ(図1)。図2は簡単なデータベースにオートフィルタを設定したところだ。セルC10には「金額」列を合計するために「=SUM(C2:C8)」という計算式を入れてある。
このリストで、住所が「東京」のデータだけを表示してみよう。それには、オートフィルタ矢印をクリックして「東京」を選択すればいい。しかし、よく見るとリストが「東京」で絞り込まれていてもセルC10の結果は変わらない。オートフィルタの絞り込みとは関係なく、セル範囲C2:C8を合計してしまっている(図3)。
オートフィルタは、条件に一致しない行を非表示にする機能だ。だがSUM関数は、非表示のセルであっても計算の対象にしてしまう。このように、オートフィルタで抽出した結果だけを計算したいときは、SUM関数ではなくSUBTOTAL関数を使おう(図4)。
SUBTOTAL関数は、非表示のデータを計算対象から除外してさまざまな計算を行うマルチ関数だ。計算の種類は、第1引数で指定する。セルC10に入力した「SUBTOTAL(9,C2:C8)」は、指定した範囲の合計を計算せよという意味になる。