[範囲]と[合計範囲]の高さを一致させるのがポイント
「SUMIF」(サム・イフ)関数は、条件を指定して数値を合計したいときに使う定番の関数です。特定の文字列の指定、数値や日付との比較、部分一致での抽出など、さまざまな条件を指定して数値を合計できます。
以下は、あるセミナーの参加者数をまとめた表です。SUMIF関数を使えば、開催地や日付、特定の文字列を含むかどうか、といった条件を指定して参加者数の合計を求められます。
SUMIF関数では、例えば『開催地が「新宿」の参加者数だけを合計する」といった計算が可能です。
さっそくSUMIF関数の構文を確認しましょう。
=SUMIF
(範囲, 検索条件, 合計範囲)
引数[範囲]に指定したセル範囲で[検索条件]に一致するデータを探し、[合計範囲]の数値を合計します。ポイントは、[範囲]と[合計範囲]のセル範囲の高さを同じにすることです。
例えば、以下のように[合計範囲]の高さがずれていると正しく合計されません。当たり前なのですが、数式のコピーを繰り返したりすると、このようなミスが発生するので注意してください。
[範囲]と[合計範囲]のセル範囲の高さがずれていると正しく合計されません。
引数[検索条件]で使える比較演算子とワイルドカード
SUMIF関数の2つ目の引数[検索条件]では、比較演算子とワイルドカードが使えます。指定する条件と組み合わせて、「"」(ダブルクォーテーション)で囲みましょう。
引数[検索条件]に使える比較演算子
演算子 | 名称 | 使用例 | 結果 |
---|---|---|---|
= | 等しい | "=5" | 5と等しい | <> | 等しくない | "<>新宿" | 「新宿」に等しくない |
> | より大きい | ">5" | 5より大きい |
< | より小さい | "<5" | 5より小さい |
>= | 以上 | ">=5" | 5以上 | <= | 以下 | "<=5" | 5以下 |
引数[検索条件]に使えるワイルドカード
ワイルドカード | 意味 | 使用例 | 結果の例 |
---|---|---|---|
* | 任意の文字列 | "*限定" | オンライン限定、会員限定など 任意の文字列+「限定」 |
? | 任意の1文字 | "新?" | 新宿、新橋、新田など 「新」+任意の1文字 |
ワイルドカードそのものを検索したいときは、「*」や「?」を「~」で挟んで、「"~?~"」と指定します。
特定の単語に一致する場合に合計する
まずはSUMIF関数の基本の使い方です。指定したセル範囲から「新宿」に一致するデータを探して参加者数を合計します。「=SUMIF(C8:C32,"新宿",D8:D32)」と入力して結果を確認しましょう。
=SUMIF(C8:C32,"新宿",D8:D32)
1SUMIF関数を入力する
セルC1に「=SUMIF(C8:C32,"新宿",D8:D32)」と入力します。
2結果が表示された
指定したセル範囲で「新宿」に一致するデータの参加者数が合計されました。
続けて、入力した数式を「=SUMIF(C8:C32,E1,D8:D32)」と変更します。セルE1には「新宿」と入力してあります。2つ目の引数[検索条件]はセル参照でも指定できることを確認しましょう。数式の意味は先ほどと同じ、結果も同じです。
=SUMIF(C8:C32,E1,D8:D32)
3引数[検索条件]を修正する
セルC1の数式を「=SUMIF(C8:C32,E1,D8:D32)」と修正します。
2結果が表示された
セルE1の「新宿」が参照されて結果が表示されました。先ほどと同じですね。
特定の日付に一致する場合に合計する
特定の単語と同様、特定の日付に一致する条件も指定可能です。数式は「=SUMIF(A8:A32,"2020/4/7",D8:D32)」となります。
=SUMIF(A8:A32,"2020/4/7",D8:D32)
セルC2に「=SUMIF(A8:A32,"2020/4/7",D8:D32)」と入力した結果です。
「等しくない」場合に合計する
特定の値以外を条件とするときは、比較演算子の「<>」を使います。ここでは「ー」以外の開催地の参加者数を合計します。数式は「=SUMIF(C8:C32,"<>ー",D8:D32)」となります。
=SUMIF(C8:C32,"<>ー",D8:D32)
セルC3に「=SUMIF(C8:C32,"<>ー",D8:D32)」と入力した結果です。
なお、比較演算子の「<」や「>」は「"<2020/4/7"」のように、基準の日付「より前」や「より後」という指定も可能です。「<=」や「>=」を使えば「以前」「以降」という意味になります。
任意の文字で終わる場合に合計する
ワイルドカードの「*」を使えば、任意の文字列で終わる条件を指定できます。ここでは「(オンライン限定)」で終わるセミナーへの参加者数を合計します。数式は「=SUMIF(B8:B32,"*(オンライン限定)",D8:D32)」です。
=SUMIF(B8:B32,"*(オンライン限定)",D8:D32)
セルC4に「=SUMIF(B8:B32,"*(オンライン限定)",D8:D32)」と入力した結果です。
ワイルドカードの位置を変えれば、自由度の高い条件となります。例えば、「"セミナーA*"」とすれば、「セミナーA」で始まるすべてのデータが一致することになります。
指定した文字数の単語を条件に合計する
指定した文字数の単語を条件として合計することを考えます。任意の1文字を表すワイルドカードは「?」です。数式は「=SUMIF(C8:C32,"新?",D8:D32)」となります。
ここで指定した「新?」とは、『「新」+任意の1文字』という意味です。「新宿」「新橋」などは条件に一致しますが、「新杉田」や「新横浜」は一致しません。
=SUMIF(C8:C32,"新?",D8:D32)
セルC5に「=SUMIF(C8:C32,"新?",D8:D32)」と入力した結果です。
SUMIF関数は、条件を指定して数値を合計するときの定番です。複雑な条件も指定できて便利なので、ぜひ実務でも活用してみてください。比較演算子とワイルドカードは、ほかの関数で指定するときも共通です。