SUMIF関数とCOUNTIF関数

条件に適合しているもののみを集計対象にして、合計を求める(SUMIF)あるいはデータ数(セルの個数)を数える(COUNTIF)ための関数を解説します。

SUMIF関数から派生したSUMIFS関数についても触れます。

 

SUMIF関数

文字通りSUM(合計)+IF(条件)です。

条件に適合しているもののみを集計対象にして合計を求めるための関数です。

検索範囲で検索条件と一致する行の合計範囲の値を合計します。

 

=SUMIF(検索範囲,検索条件,合計範囲)


SUMIFS関数

SUMIFS関数はExcel2007で追加された比較的新しい関数で、複合条件のすべてを満足するものの合計値を求めるものです。

 

SUMIFと違って、最初に合計範囲を記述し、次から、検索範囲1、検索条件1、検索範囲2、検索条件2・・という風に続けます。

 

=SUMIFS(合計範囲,検索範囲1,検索条件1,[検索範囲2,検索条件2]・・)


COUNTIF関数

COUNT(個数)+IF(条件)を意味しているCOUNTIFは、条件に適合しているもののセルの個数を求めるための関数です。

検索範囲で検索条件と一致する行の合計範囲の値を合計します。

 

=COUNTIF(検索範囲,検索条件,合計範囲)


SUMIF関数の具体例

右の2表は支店別・商品別の売上表(上の表)を元に、全支店トータルの商品別売上表(下の表)を算出しているものです。

 

この場合、例えば

 C12のセルには「=SUM(C2,C5,C7)」 

      (or「=C2+C5+C7」)

 C13のセルは 「=SUM(C3,C8)」

 C14のセルは 「=SUM(C4,C6)」

という式を用いている方が多いのではないでしょうか。

 

SUMIF関数の使用例
SUMIF関数の使用例

上述のような比較的小さい表であればまだしもですが、この方法では大きな表になるほど加算対象にすべきセルが漏れる恐れが増します。また新たに支店が増えた場合など、それぞれの式をすべて見直して直す必要が出てきます。

 

SUMIFを用いると以下のようにすることができます。

         C列                                     D列

 行12 =SUMIF($B$2:$B$8,$B12,C$2:C$8)  =SUMIF($B$2:$B$8,$B12,D$2:D$8)

 行13 =SUMIF($B$2:$B$8,$B13,C$2:C$8)  =SUMIF($B$2:$B$8,$B13,D$2:D$8)

 

セルC12の関数は、セルB2からB8までを検索範囲として、検索条件としてセルB12と合致するもののみを加算対象とし、セルC2からC8までの範囲で加算計算する、という意味ですね。

 

セルB12は「商品A」ですから、セルB2からB8までの中で「商品A」という文字列を含む行のみを対象としますので、実際の加算はC2、C5、C7のセルということになります。

このように加算対象の項目を条件式で規定すれば、対象漏れということはなくなります。

 

また上記を良く見て頂くと、関数の中に絶対参照と複合参照が混ざっていて、C12のセルをドラッグで右方向・下方向にコピーするだけで、残りのセルに数式が埋まることがお分かりだと思います。

絶対参照・複合参照を使いこなすことが表計算の醍醐味といえましょう。 

 

【便利知識】

SUMIFは次のように検索条件として検査値そのものを指定することができます。中でも「スペースでない行を集計対象とする」という方法を覚えておくと便利だと思います。

 

(例1) =SUMIF(A2:A20,"小計",B2:B20)

     A2~A20の中で"小計"となっている行のB列の値を集計し、合計を求める

(例2) =SUMIF(A2:A15,"*",B2:B15)

     A2~A15の中で"スペースでない"行のB列の値の合計を求める

(例3) =SUMIF(A2:A15,"*償却*",B2:B15)

     A2~A15の中で"償却"という文字列を含む行のB列の値の合計を求める

 

【便利知識】

文字列の箇所のアスタリスク "*" は、ワイルドカードの一種で、0文字以上の何らかの文字列を表します。

 "千葉県*"   千葉県で始まる文字列

 "*山"     山で終わる文字列

 "*償却*"    償却を含む文字列(償却で始まる、償却で終わる、文字列を含む)

 

クエスチョン "?" は、1文字分のワイルドカードです。

 "川?"     川で始まる2文字の文字列

 "???川"    川で終わる4文字の文字列