Excelにはフィルタ機能というのがあります。指定したデータのみを抽出し表示する機能なんですが、その抽出されなかったデータというのは非表示扱いで隠れてしまいます。
が、非表示されるだけでデータ自体は存在しますので、たとえば合計を出すSUM関数を使うと、非表示部分も合計されてしまいます。
フィルタに掛かった結果のみ、表示されているデータのみを合計したい場合はどうしたら良いんでしょうか。
フィルタリングする
まずは上のデータをフィルタリングしてみます。消耗品費・修繕費のみを抽出したいと思います。
①A3からC10までを選択します | → | ②フィルタボタンを押します | → | ③科目フィルタの消耗・修繕以外チェックを外します。 |
するとこのような結果になります。
しかしです!金額欄を見てください。6,500+120,000+800の合計は127,300にならないといけません。
これがSUM関数。隠れている厚生費、交通費、旅費も合計してしまうんです。
ではどうすればいいの?
ここで使うのがSUBTOTAL関数です。
あまり聞き慣れない関数ですが、合計(SUM)だけでなく、COUNTやAVERAGE、最大値(MAX)、最小値(MIN)もこの関数一つで扱えます。
今回のパターンだと以下の式になります。
SUBTOTAL関数の引数は2つ。
=SUBTOTAL( 集計方法 , 範囲 ) です。
この集計方法というのは予め決められた番号があり、番号毎に集計方法が決まっています。SUMだと9です。下記の表を参考にしてください。
番号 | 集計方法 |
---|---|
1 | AVERAGE |
2 | COUNT |
3 | COUNTA |
4 | MAX |
5 | MIN |
6 | PRODUCT |
7 | STDEV |
8 | STDEVP |
9 | SUM |
10 | VAR |
11 | VARP |
他の例を出すと、
=COUNT(C4:C10) の結果は 7 ですが
=SUBTOTAL(2,C4:C10) の結果だと 3 になります。