複数条件に合致したデータを合算するSUMIFS関数-GSS/Excel/関数
複数の条件に合致したデータを合算(SUM)するSUMIFS関数について説明します。
条件合致したものを合算する関数はほかに、「SUMIF関数」があります。違いは「s」がつくか否か。「s」がつく場合は複数、つかない場合は単一の条件ということになります。
ただ正直、SUMIFS関数を覚えておけば、SUMIF関数を包含するので、それだけ覚えれば不足はありません。
関数的な違いは、関数内の参照データの順番が違ってるだけなので、SUMIFS関数を覚えれば必然的にSUMIF関数も覚えられてしまうんですが、とにかく意識しておくのは、SUMIFS関数だけでいいです、ぶっちゃけ。
似た関数に、AVERAGEIFS関数 COUNTIFS関数 などがありますが、それらも作りは基本同じなので、SUMIFS関数を理解すれば、似た関数も同じようにスラスラ出てきます。
SUMIF関数については
条件に一致した値の合計値を知りたいSUMIF関数SUMIFS関数-GSS/Excel/関数でも説明していますのでご参照ください。
前回は条件が一つしかなかったので、SUMIFS関数でもSUMIF関数でも結果が出せるものでしたが、今回は2つ以上の条件を使って数値を出していきます。
使い方
=SUMIFS(合算したい範囲,条件範囲1,条件1,条件範囲2,条件範囲2.....)
条件1と条件範囲1はセット。また条件2と条件範囲2もセットで使います。
次の演習問題を使って説明していきます。
④納品日に各ブランドの商品がいくつ納品されたか計算せよという設問です。
左側のデータリストから抽出していきましょう。
正解例
[K12]=SUMIFS(C:C,E:E,J12,B:B,I12)
[K12]セルにすでに答え書いちゃってますが、書いてある通りのこちらの数式になります。
SUMIFS関数の場合、まず合算したいデータを指定します。
今回はC列に納品数が入力されているのでこちらを足し合わせたいです。
次に、条件を順番に指定しますが、今回の条件は「日付」と「ブランド名」の2つの条件を使っています。
なので、「日付の範囲&日付の条件」のセット、「ブランドの範囲&ブランドの条件」のセットを指定するので、E:E,J12とB:B,I12 を指定することになります。
簡単ですよね。
また今回指定した範囲に行の指定がないことにきづきましたか?
「E:E」と[B:B]を条件範囲として指定しているのですが、これは該当列をすべて参照するという意味になります。
お尻がないデータの場合は、お尻を気にしなくてよいので、この指定にしてしまったほうが楽です。
行指定する範囲、例えば[E1:E3]などにし、関数を下の行にも適用させるためにコピペなどすると、[E2:E4]、[E3:E5]と範囲がずれてしまいます。
これは
条件に一致した値の合計値を知りたいSUMIF関数SUMIFS関数-GSS/Excel/関数でも解説した通り、「相対参照」による事象です。
行を固定していないので、相対参照になり、気を利かせてずれていってます。これを解消するために「$」をつかって固定をするのですが、データリストの行の下部に、データリストに関係がないデータが記入されていなければ、該当列をすべて参照する範囲に指定してしまえるので、行が不要になります。
通常こうしたデータリストは、下にどんどん同じ意味合いのデータがたまっていけるように設計するので、列ごとを指定しても不具合はないはずです。
そこで、行を指定せず、列だけを指定し、「E:E」[B:B]などの記述をすることで、下の行に同じ関数をコピペしても行がずれることで指定した列範囲はズレないので、これでまた時短になります。
範囲指定するときに行でも同じことができます。「1:1」は1行目をすべて指定する記述。「2:2」は2行目をすべて指定する記述となります。
こうした記述のテクニックもぜひぜひ使いこなしてみてくださいね。
まとめ
- SUMIFS関数・SUMIFS関数の使い所
- あるデータから条件が合致するデータのみで合算したいとき
- 構文
- =SUMIFS(合算したい範囲,条件範囲1,条件1,条件範囲2,条件範囲2.....)
- 例文
- =SUMIFS(C:C,E:E,J12,B:B,I12)