フィルタで抽出された範囲だけ合計値や平均値を出したいSUBTOTAL関数とフィルタ-GSS/Excel/関数

フィルタした部分だけ●●のSUBTOTAL関数

今回はSUBTOTAL関数について説明します。その前に一緒に使うフィルタについてもご説明していきますね。

フィルタ

こちらもあまり使ったことがない人もいるようですが、表から条件抽出する方法でとても便利です。

上の図を見てください。フィルタを適用したい[A4:K4]を選択した状態です。このまま、上部メニューバーの「データ」>「フィルタを作成」を押してください。

[A4:K4]のセルに三角マークがつきました。これがフィルタのマークです。早速フィルタを使ってみます。

[C]列を「AAA」の条件でフィルタかけます。

すると上の図のようになります。「BBB」「CCC」が非表示になり、「AAA」に該当する部分だけ抽出されました。

このフィルタをかけた部分だけで合計の売り上げを見たい場合どうすればいいかわかりますか?

3行目にsum関数で範囲指定をしてしまうと、非表示になっている「BBB」「CCC」もsumの計算範囲に含まれてしまうので、不正解です。

そこで使うのがSUBTOTAL関数です。早速答えの式です。

構文

=SUBTOTAL(集計方法,集計する範囲)

正解

[J3]=SUBTOTAL(9,J5:J19)

今は5行目から19行目全て表示されているので、2200000と出ています。ここから「AAA」だけでフィルタを使って抽出してみます。

[J3]の関数自体は変わっていませんが、[J3]に表示されている数値が変わりました。1150000になっており、AAAに該当する行だけで計算されたことがわかります。

試しに「BBB」でフィルタをかけてみます。

[J3]が450000になりました。フィルタされた行を見ると、

100000+100000+200000+50000=450000になるので、間違いないことがわかりますね。

ちなみに範囲選択をすると、画面右下に選択されたセルの合計値や平均値が出る場所があります。ここも知っておくと使い勝手がいいですよ。

合計:450000とありますね。これで関数の結果が間違っていないかを確認することが多いので覚えておいてください。

この部分をクリックしてみると、合計、平均、最小、最大、カウント、個数などの数値もみられます。

上記の範囲指定の状態でそれぞれの値をみると次のようになります。

合計:450000
平均:112500
最小:50000
最大:200000
カウント:4
個数:4

SUBTOTAL関数に話を戻します。

SUBTOTAL関数は表示されている値を任意の方法で演算する関数なので、sumしかできないわけではありません。今回はsumで計算するので、関数内でsumをしてねと言う指定を入れています。

[J3]=SUBTOTAL(9,J5:J19)

上記式の「9」がその指定です。

その他の計算式と指定をまとめてご紹介します。

集計方法集計機能同等の関数
1または101平均値を求めるAVERAGE
2または102数値の個数を求めるCOUNT
3または103データの個数を求めるCOUNTA
4または104最大値を求めるMAX
5または105最小値を求めるMIN
6または106積を求めるPRODUCT
7または107不偏標準偏差を求めるSTDEV.S
8または108標本標準偏差を求めるSTDEV.P
9または109合計値を求めるSUM
10または110不偏分散を求めるVAR.S
11または111標本分散を求めるVAR.P

SUBTOTAL関数は、まず何をして欲しいかを入れます、その後にそれをして欲しい範囲を入れます。

[H3]で単価の平均値を出したい場合、

[H3]=SUBTOTAL(1,H5:H19)

実際にやってみるとこのようになります。

いかがでしょうか?SUBTOTAL関数とフィルタの組み合わせは条件抽出でさっと数値を見たいときにとても便利です。

2016年に発表されたaggregate関数はこのSUBTOTAL関数の強化版です。こちらも改めてご説明していきますのでぜひ使ってみてくださいね。

まとめ

  • SUBTOTAL関数の使い所
    • フィルタした部分だけ集計したいとき
  • 構文
    • =SUBTOTAL(集計方法,集計する範囲)
  • 例文
    • =SUBTOTAL(9,J5:J19)

コメントを残す