SUMIFS関数に指定する条件は1つでもOK

Googleスプレッドシートで「もし~なら合計する」の処理を行うには、SUMIFS(サム・イフ・エス)関数を利用します。条件をひとつだけ指定できるSUMIF(サム・イフ)関数もありますが、SUMIFS関数に指定する条件はひとつでも構いません

これから覚えるなら、SUMIFS関数のみでも不都合はないでしょう。以下に紹介するSUMIF関数とSUMIFS関数の構文を見てください。

=SUMIF範囲, 条件, 合計範囲

  1. 範囲] ... [条件]の検索対象とするセル範囲を指定します。
  2. 条件] ... [範囲]を検索する条件を指定します。
  3. 合計範囲] ... 合計する値の入力されたセル範囲を指定します。省略した場合は[範囲]の値を合計の対象とします。

=SUMIFS合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, ...)

  1. 合計範囲] ... 合計する値の入力されたセル範囲を指定します。
  2. 条件範囲] ... [条件]の検索対象とするセル範囲を指定します。
  3. 条件] ...[条件範囲]を検索する条件を指定します。

これはExcelでも同じことがいえますが、SUMIF関数とSUMIFS関数で引数の順番が異なることに注意してください。SUMIF関数では[合計範囲]を3つめに指定しますが、SUMIFS関数の[合計範囲]は1つめです。この違いを意識せずに併用してしまうと、思わぬミスの原因になります。条件がひとつでもSUMIFS関数のみを利用するテクニックも覚えておきましょう。

ひとつの条件に一致するデータを合計する

Googleスプレッドシートで、SUMIFS関数に指定する条件はひとつでも構わないことを確認してみましょう。『開催地が「池袋」』の条件を満たす参加者数を求めます。

数式中に条件を記述する場合は「""」(ダブルクォーテーション)で囲んで指定しますが、実務では条件となる文字列や数値が別のセルに入力されていることが多いでしょう。セルに入力した条件を参照して、引数[合計範囲]は「F2:F26」、[条件範囲]は「E2:E26」、[条件]は「H2」となり、入力する数式は以下の通りです。

=SUMIFS(F2:F26,E2:E26,H2)
1SUMIFS関数を入力する

Googleスプレッドシートで複数条件に一致するデータを合計する方法

SUMIFS関数の結果を表示したいセル(ここではセルH5)に数式「=SUMIFS(F2:F26,E2:E26,H2)」を入力します。[合計範囲]はセルF2~F26、[条件範囲]はセルE2~E26、[条件]として、ここではセルH2を参照しています。

2結果が表示された

Googleスプレッドシートで複数条件に一致するデータを合計する方法

『開催地が「池袋」』の条件に一致するデータの参加者数が合計されました。

2つの条件に一致するデータを合計する

Googleスプレッドシートで、2つの条件に一致するデータを合計してみます。『開催地が「池袋」、かつ、オンライン公開がない』の2つの条件を満たす参加者数を求めます。[条件範囲]と[条件]のセットを2つ指定します。

=SUMIFS(F2:F26,E2:E26,H2,C2:C26,I2)

「○○でない」の条件には比較演算子の「<>」を利用します。引数[条件]で利用できる演算子については、本記事末尾のHINTを参照してください。

Googleスプレッドシートで複数条件に一致するデータを合計する方法

[合計範囲]はセルF2~F26、[条件範囲1]はセルE2~E26、[条件1]はセルH2、[条件範囲2]はセルC2~C26、[条件2]はセルI2です。セルH5には「=SUMIFS(F2:F26,E2:E26,H2,C2:C26,I2)」と入力してあります。

もちろん、3つ以上の条件を指定しても構いません。

範囲内のデータを合計する

「参加費が2,000円以上、3,000円未満」の範囲に含まれる参加者数を求めてみます。2,000円以上は「>=2000」、3,000円未満は「<3000」で表現できます。条件は先ほどと同じように、セルH2とI2に入力してあります。[参加費]列(セルD2~D26)は、2回参照することになります。

=SUMIFS(F2:F26,E2:E26,H2,E2:E26,I2)

Googleスプレッドシートで複数条件に一致するデータを合計する方法

セルH2とI2に条件を入力してあります。「参加費が2,000円以上、3,000円未満」の条件なので、[参加費]列(セルE2~E26)は、2回参照することになります。入力した数式は「=SUMIFS(F2:F26,E2:E26,H2,E2:E26,I2)」です。

なお、比較演算子と日付を組み合わせた特定の期間の指定も可能です。以下は「2023/4/4~2023/4/6」の範囲条件として「>=2023/4/4」「<=2023/4/6」と条件を指定しています。

=SUMIFS(F2:F26,A2:A26,H2,A2:A26,I2)

Googleスプレッドシートで複数条件に一致するデータを合計する方法

「開催日が2023/4/4~2023/4/6」の条件を指定しました。日付を比較して期間を条件にすることも可能です。入力した数式は「=SUMIFS(F2:F26,A2:A26,H2,A2:A26,I2)」です。

「または」(OR条件)で合計する

上記の例はいずれも「AかつB」のAND条件でした。今度は「AまたはB」のOR条件で数値を合計してみましょう。ここでは『開催地が「神田」または「新橋」』の条件を考えます。しかし、以下のような数式の結果は「0」となってしまいます。

=SUMIFS(F2:F26,E2:E26,"神田",E2:E26,"新橋")

Googleスプレッドシートで複数条件に一致するデータを合計する方法

セルH2とI2には条件を入力してあります。入力した数式は「=SUMIFS(F2:F26,E2:E26,H2,E2:E26,I2)」ですが、結果は「0」となります。

SUMIFS関数の引数[条件範囲]と[条件]を複数指定した場合は「AかつB」のAND条件となります。先ほどの数式では『セルE2~E26の範囲で「神田」』かつ『セルE2~E26の範囲で「新橋」』となり、この条件を満たすデータは存在しないので、結果は「0」となったわけです。

意図する条件は『「神田」もしくは「新橋」』なので、2つの条件に一致するデータの合計をそれぞれSUMIFS関数で求めて足し合わせます。

=SUMIFS(F2:F26,E2:E26,"神田") + SUMIFS(F2:F26,E2:E26,"新橋")

Googleスプレッドシートで複数条件に一致するデータを合計する方法

セルH2とI2に条件を入力してあります。入力した数式は「=SUMIFS(F2:F26,E2:E26,H2)+SUMIFS(F2:F26,E2:E26,I2)」です。結果は「1275」となりました。

フィルターで「神田」と「新橋」に絞り込んでステータスバーで合計を確認してみます。

Googleスプレッドシートで複数条件に一致するデータを合計する方法

[開催地]列で「神田」と「新橋」に絞り込みました。参加者数をステータスバーで確認すると「1275」と表示されています。

「かつ」と「または」を組み合わせる

AND条件とOR条件を組み合わせて『参加費が3000円以上、かつ、開催地が「新橋」または「神田」』の参加者数を求めてみましょう。

この条件を整理すると『参加費が「3000円」以上、かつ開催地が「新橋」』または『参加費が「3000円」以上、かつ開催地が「神田」』と同じ意味です。

3,000円以上(>=3000)の条件は共通で、[開催地]列の条件が「新橋」と「神田」になります。先ほどのOR条件と同じと考えると数式は以下のようになります。

=SUMIFS(F2:F26,D2:D26,">=3000",E2:E26,"新橋") + SUMIFS(F2:F26,D2:D26,">=3000",E2:E26,"神田")

Googleスプレッドシートで複数条件に一致するデータを合計する方法

セルH2、I2、J2に条件を入力してあります。入力した数式は「=SUMIFS(F2:F26,D2:D26,H2,E2:E26,I2)+SUMIFS(F2:F26,D2:D26,H2,E2:E26,J2)」です。結果は「1152」となりました。

フィルターで絞り込んでステータスバーで合計を確認してみます。

Googleスプレッドシートで複数条件に一致するデータを合計する方法

[参加費]列で「3000円」以上、[開催地]列で「新橋」と「神田」に絞り込みました。参加者数をステータスバーで確認すると「1152」と表示されています。

HINT引数[条件]に使える比較演算子

引数[条件]では、比較演算子とワイルドカードを使うことができます。指定する条件と組み合わせて、「""」で囲みます。

なお、ワイルドカード自体を検索したいときは、「*」や「?」を「~」で挟んで、「"~?~"」と指定してください。

引数[条件]に使える比較演算子

演算子 名称 使用例 結果
= 等しい "=5" 5と等しい
<> 等しくない "<>渋谷" 渋谷に等しくない
> より大きい ">5" 5より大きい
< より小さい "<5" 5より小さい
>= 以上 ">=5" 5以上
<= 以下 "<=5" 5以下

引数[条件]に使えるワイルドカード

ワイルドカード 意味 使用例 結果の例
* 任意の文字列 "新*" 新宿、新橋、新大久保
? 任意の1文字 "?田" 新田、本田、行田

関連記事