この記事ではSUBTOTAL関数を用いて、非表示セルを除外して集計する方法を紹介します。
SUM関数やAVERAGE関数では非表示設定がされている行や列も集計してしまいます。これらはSUBTOTAL関数で集計対象より除外することが可能です。
集計のテーマ
以下のようなサンプル表をご覧ください。
| 金額 | |
|---|---|
| 店舗1 | 500 | 
| 店舗2 | 300 | 
| 店舗3 | 400 | 
| 店舗4 | 200 | 
| 店舗5 | 700 | 
| 店舗6 | 600 | 
| 合計 | |
| 平均 | 
「SUM・AVERAGE・MAX・MIN・COUNT・COUNTA・PRODUCT」といった関数を使うと範囲内を集計することができますね。
 例えば下図のセルB9ではB2:B7をSUM関数で集計しています。B10ではAVERAGE関数での集計です。

しかし通常では非表示設定をしたセル・行・列も集計対象となってしまいます。
 偶数番号の店舗を非表示にしましたがセルB9:B10の集計結果には影響がありません。
 「通常では非表示セルも集計対象となる」のです。

※行を非表示とするには、行番号を右クリックして「非表示」をします。
SUBTOTAL関数で非表示セルを除外して集計する
非表示セルを集計対象から除外するにはSUBTOTAL関数を使います。
非表示部を再表示してから作り直してみます。
 「=su…」と入力すれば「SUBTOTAL」が出現します。選択して{Tab}キーを使うと採用されます({Enter}キーではない)。

SUBTOTAL関数の書式は
=SUBTOTAL(集計方法,参照)
となります。[参照]とは集計対象とする範囲です。[集計方法]にはSUMするのかAVERAGEするのか、…ということを番号で指定します。「109→SUM」「101→AVERAGE」となります。
最初に集計方法を指定します。非表示セルを除外する集計をする場合には3桁の「100以上」の集計方法を指定します。SUMなら「109」としましょう。
「9」もSUMですが、1桁と2桁の番号は非表示セルを集計対象としてしまいます。

「109」のあとにはカンマ(,)を入れます。カンマのあとには集計対象とする範囲を指定しましょう。

完成しました。

集計方法に「101」を使えば「AVERAGE」になります。

店舗番号が偶数の行を非表示にしてみました。
 集計対象から除外されています。

B9の式
=SUBTOTAL(109,B2:B7)
B10の式
=SUBTOTAL(101,B2:B7)
集計方法番号の一覧
1桁、2桁番号では非表示セルも集計対象になります。
以下の3桁番号は非表示セルを集計対象から除外します。
| 数値 | 集計方法 | 
|---|---|
| 101 | AVERAGE | 
| 102 | COUNT | 
| 103 | COUNTA | 
| 104 | MAX | 
| 105 | MIN | 
| 106 | PRODUCT | 
| 107 | STDEV | 
| 108 | STDEVP | 
| 109 | SUM | 
| 110 | VAR | 
| 111 | VARP | 
 
コメント