Excel SUMIF関数の書き方・使い方
Excel関数を、少し踏み込んで習得しようというときによく出てくる関数。条件に当てはまる数値だけを合計する、という関数で、使い方によっては非常に便利な関数です。
■どんなふうに使う?・・・「条件に一致した数値を合計する」
単純に合計するだけならSUM関数で済みます。けれども、たとえば右図(クリックすると大きな画像でご覧いただけます)のように、明細行の途中に「小計」があり、最後の行の合計では、その小計行とそのほかの数行だけを合計したい、というような場合には、SUM関数を使うわけにはいきませんね。(単純に上から下まで合計、とやってしまうと、小計の行と各明細行とが全部合計されて、二重に足されてしまうことになるからです。)
右図の例のように、明細行・小計行ともに多くない場合なら、合計欄には普通に「=F7+F15+・・・」と足し算の計算式を書いていけばよいかもしれませんね。けれども、この明細行が何十行もあったり、あるいは合計すべき行が「小計」だけではなく、小計の下にある雑費やその他のような行も含めて合計・・・なんてことになると、明細の内容や合計すべき行が変わるたびにいちいち計算式を書きなおさなければならなくなり、面倒ですね。
そんなときに使うのが、「SUMIF関数」です。
=SUMIF(○,□,△)
と書いて、「○の範囲の中で、□と書かれた(入力された)行だけ数値を合計します。合計する数値は△の範囲で囲った部分の数値です」という意味になります。
■書き方(入力の仕方)
=SUMIF(検査範囲,条件,合計範囲)
右図で説明しましょう。(上記の説明で使った、「小計」の混在している集計表です。クリックすると大きな画像でご覧いただけます。)
実際には、右図のExcelシートは、合計数値のセルに、
「=SUMIF(H3:H24,1,F3:F24)」と入力して計算させています。
検索範囲
この検査範囲で条件に一致する行があった場合、その行だけ合計する、ということになります。右図では、明細行や小計の表の欄外に、1列入力する列を設けて、そこを検査範囲としています。
検索条件
検索範囲の中で、「小計」の行と、「諸経費」「その他雑費」の行に当たるセルに、「1」と入力してあります。
合計範囲
「条件に一致する行の合計をする」という場合の、どの列を合計するのかを指定しています。右図の場合は「合計」列を計算させることになっています。
■解説
検索範囲・・・この範囲を調べる
SUMIF関数は「検索範囲の中で、検索条件に一致する行だけを取り出して、その行の、合計範囲に該当する列の数値を合計する」という機能の関数です。ここでいう検索範囲とは、「条件に一致するかどうかを調べる範囲」のことになります。上図の例では、「小計」「諸経費」「その他雑費」の部分だけを合計したいので、その行の欄外に「1」と入力しておくことによって、「1」と入力されたところだけ合計する、という意味にしました。
ちなみに、検索範囲は、欄外ではなくてもかまいません。たとえば上記の枠内のいちばん左、行番号や「小計」と書いてある列でもかまいません。ここの列を検索範囲に指定して、条件を「小計」とつけておけば、「小計」の行だけ合計する、ということも可能です。ただし、上記の例の場合で合計したいのは「小計」だけではなく、「諸経費・その他雑費」の行も含まれます。このため、いちばん左の列では条件を指定するのが難しいため、例では欄外を利用しています。
検索条件
検索範囲で調べる条件を指定します。上記の例では、「1」と入力されている行、という条件で指定するために「1」と入力しましたが、ここは必ずしも数字でなくてかまいません。たとえば「*」の付いている行、とか、「計算する」と書いてある行、というふうに条件づけしてもかまいません。
ただし「*」とか「計算する」のように、条件に数字以外をつける場合は、関数の入力の際に「"*"」とか「"計算する"」のように、「""」で文字を囲って入力してください。
合計範囲
検索条件に一致した場合、どの列を計算するのか?を指定します。上記の例では「金額」の列を合計範囲として指定してあります。
これは、パッと見ると「そんなの当たり前じゃん?指定する必要あるのあ?」と思われるかもしれませんね。けれどもそれは、使う側の人間が頭の中で勝手に「合計するっていったら金額だ」と思い込んでいるからです。厳密に言うと、「1」と書いてある行の、どの部分を合計するのは?は指定しなければ、コンピュータは計算してくれません。(場合によっては金額ではなくて、「数量」を合計したいことだってあるでしょう?)
■注意事項
検索範囲と合計範囲は、行数が一致していなければなりません
SUMIF関数を使う場合、検索範囲と合計範囲は、同じ行の違う列を指定しなければいけません。(ごくまれに、同じ行の同じ列、という設定をすることはありますが)検索範囲が10行目から20行目なのに、合計範囲が11行目から21行目というように、ずれているとエラーとなりますのでご注意を!
■使い道・活用方法
この関数は、特に、縦にず~っと数値が並んでいる表で、ある特定の条件に一致する部分だけを部分的に合計したい、というような場合に使われることが多いです。
たとえば
- 明細行数の多い請求書・見積書などで、途中に「小計」などが入る書類
- 該当する明細の個数を数えたい場合
- データの多い集計などで、条件別に合計を出したい場合
など・・・。広く応用できるようにするために、多少設定の仕方や使い方が抽象的でピンとこないのが、この関数のハードルを高くしてしまっているのですが、活用できればいろいろな場面で便利に使えると思います。ぜひ覚えておきたい関数ですね。