2/14/2024

Excel。途中に集計行がある表。集計を除いた最大値を算出したい。【subtotal】

Excel。途中に集計行がある表。集計を除いた最大値を算出したい。

<SUBTOTAL関数>

四半期集計などが表の途中にある表で、最大値を算出したい場合、SUM関数とMAX関数だと上手く算出することができません。


表を用意しましたので、確認していきます。


日々の集計である小計が算出されている表です。


C列の場合からみていきましょう。


小計は、SUM関数とつかって、算出しています。


そして、最大値を算出したいわけですから、MAX関数と考えますが、範囲選択が面倒です。


どうしてかというと、小計を含めて範囲選択すれば、当然、小計の値の方が日々のデータよりも大きくなるからです。


そのため、小計を含めて最大値を算出すると、最大値が算出できないので、小計を除いて範囲選択する必要があります。


ただ、イチイチ、小計を除いて範囲選択するのは、面倒です。


実は、SUM関数やMAX関数とつかって、小計を除いた最大値を算出するよりも、別の関数をつかうと、手早く算出することができます。


先程の表を数式で表示してみます。


C列の小計はSUM関数。そして、最大値はMAX関数をつかっています。

D列は、小計も最大値もSUBTOTAL関数をつかって算出しています。


なお、SUBTOTAL関数ではなくて、AGGREGATE関数をつかってもOKです。


ただ、AGGREGATE関数は引数が、SUBTOTAL関数よりも、多いので、今回は、SUBTOTAL関数をつかって説明しております。


D10のSUBTOTAL関数をつかった最大値の数式ですが、範囲選択は、D2:D9で設定しています。


SUBTOTAL関数は、範囲選択にあるSUBTOTAL関数の結果は除外するようになっています。


そのため、範囲選択を必要なデータのみにする必要はないというわけです。


それでは、小計のD5に設定したSUBTOTAL関数を確認します。

最初の引数は、集計方法です。109は非表示にも対応した合計値を求めることができる番号です。

最大値は、104と割り振られています。

2つ目の引数は、参照なので、範囲選択ということですから、それぞれのデータを設定します。


今回のように、途中に小計とかの集計行が含まれている場合、SUM関数とMAX関数で算出よりも、SUBTOTAL関数をつかうことで、手早く最大値を算出することができます。