子宝どっとこむ
(Excel)Sum系関数の使い分け
- Next Page: Index関数とIndirect関数の上手い組合せ
- Prev Page: Indirect関数、Index関数、入力規則
Sum系の関数ではSum関数、SumIf関数、SumProduct関数、SubTotal関数、DSum関数が挙げられます。これらの使い分けの目安を考察したいと思います。
合計を出したい
とりあえず合計が出ればよいというのであればSum関数が最も手軽で手っ取り早いのは当たり前です。
積の合計を出したい
単価×数量の合計を出したい場合など、単価×数量の結果を表示させた上で合計欄を作ることが一般的です。縦×横×高さのデータがあり、体積という列を用意する場合も同じです。この場合、普通にSum関数で間に合います。
しかし、「データシートにはデータだけを格納したい」という欲求や、「いちいち数式を書いてたらファイルサイズが大きくなり、メモリも食って重いので嫌だ」という不満が生じてきている場合、要するに印刷する表を作っているのではなく、合計結果のみを取り扱いたい場合にはSumProduct関数が役に立ちます。
ある(単純な)条件に合致した合計が欲しい
男性のみを集計対象とした合計や、名古屋支店の合計を求めたい場合など、一つの条件に合致した集計をするにはSumIf関数が便利です。条件は値が一致した場合以外に複雑な条件式を記述することができます(=">="&AVERAGE(I5:I13))。しかし、SumIf関数で複雑な条件を作ろうとした場合、作る際には神がかっているので作れますが、後で見返したときは自分で作ったのが信じられないほど難解なもので、ましてや他人にはさっぱり分かりません。
したがってSumIf関数は条件が単純である場合に、限った方がよいでしょう。
複雑な条件に合致した合計が欲しい
条件が複数ある場合や、SumIfで難解な条件式を書こうとしているならば、Dsum関数を習得する方が手っ取り早く、後で見返したときも分かりやすいですし、条件式の変更も容易でお勧めです。
Dsum関数に慣れておくと、オートフィルタでできないフィルタをしたい場合のフィルタオプションや、VBAでのAdvancedFilterメソッド、あるいはAccessなどの外部データの取り込みの際に役立つでしょう。
オートフィルタと連携させて計算したい
オートフィルタで抽出した結果の合計を出したい場合などは、SubTotal関数を使えば目的の結果が得られます。
SubTotal関数は引数によって様々な計算ができ、フィルタで非表示になったセルだけでなく、手動で非表示にしたセルも集計対象から外したい場合にも100番台の引数を付けることによって実現できます。
Trackback Pings(0)
No trackbacks found.
Comments(0)
No comments found.
Post a Comment