スプレッドシート

スプレッドシートのSUMIFS関数は複数条件で足し算する数式

スプレッドシートのSUMIFS関数

スプレッドシートのSUMIFS関数とは

SUMIFS関数は、Googleスプレッドシートで特定の条件に合致するデータの合計を求めるための関数です。「=SUMIFS(合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, …)」のように記載して、複数の条件を指定して合計値を計算できます。 たとえば2024年1月以降で2024年12月以内のような指定が可能です。

SUMIFS関数の構文

=SUMIFS(合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, ...)
  • 合計範囲:合計したい値が入力されているセル範囲
  • 条件範囲1:条件を判別するセルの範囲(例:A1:A10)。
  • 条件1:条件範囲1で指定した範囲から何を探したいか、の条件を指定。数値、テキスト、日付、論理式、セル参照を指定できる。
  • 条件範囲2:さらに別の条件を判別するセルの範囲。
  • 条件2:条件範囲2で指定した範囲から何を探したいか、の条件を指定。

条件範囲3以降も必要であれば設定ができます。反対に1つだけ条件を指定する場合には「SUMIF」の関数を使いましょう。

SUMIFS関数の使い方

[基本]同じ条件範囲を指定

たとえば下表のうち、2024/05/01〜2024/05/06の経費を合算したいとします。

この場合は「=SUMIFS(E2:E,A2:A,”>=2024/05/01″,A2:A,”<=2024/05/06″)」のように関数を記載します。それぞれ分解して考えてみましょう。

  • 合計範囲:E2:E
  • 条件範囲1:A2:A
  • 条件1:”>=2024/05/01″
  • 条件範囲2:A2:A
  • 条件2:”<=2024/05/06″

「合計範囲」は条件に合致した行を最後に足すものなので、一旦後回しにします。

まずは「条件範囲1」のなかで「条件1」に当てはまっている行を探します。つまり「A2:A」のなかで「”>=2024/05/01″」に合致する行を探します。

同様に「条件範囲2」のなかで「条件2」に当てはまっている行を探します。つまり「A2:A」のなかで「”<=2024/05/06″」に合致する行を探します。

そして「条件範囲1」と「条件1」をクリアして、かつ「条件範囲2」と「条件2」を満たすのは次の範囲になります。

最後に、保留にしていた「合計範囲」のうち、これまでの条件に合致した行だけを合計すると「¥3,300」となります。

[応用]異なる条件範囲を指定

続いては、異なる条件範囲を指定しつつ、条件を3つ指定する場合の関数を考えます。たとえば、2024/05/01〜2024/05/06の日付のうち、B列が「モンスターボール」の場合のも足し算する場合を想定しましょう。

この場合は「=SUMIFS(E2:E,A2:A,”>=2024/05/01″,A2:A,”<=2024/05/06″,B2:B,”モンスターボール”)」のように関数を記載します。それぞれ分解して考えてみましょう。

  • 合計範囲:E2:E
  • 条件範囲1:A2:A
  • 条件1:”>=2024/05/01″
  • 条件範囲2:A2:A
  • 条件2:”<=2024/05/06″
  • 条件範囲3:B2:B
  • 条件3:”モンスターボール”

さきほど紹介した関数に「条件範囲3」と「条件3」が加わっています。やり方の方針はこれまでと同じです。まず「条件範囲1」と「条件1」、「条件範囲2」と「条件2」の両方を満たすのは、さきほどと同じく下図のとおりです。

続いて新たに加わった「条件範囲3」と「条件3」を考えましょう。「B2:B」のうち「”モンスターボール”」となっている条件なので、下の行がヒットします。

それでは「条件範囲1」と「条件1」、「条件範囲2」と「条件2」、「条件範囲3」と「条件3」をすべてクリアした行を確認しましょう。7,10行目が該当するはずです。

そして、合計範囲「E2:E」から上図の行を合計すればよいので結果は「¥1,200」となります。

シャワーズ

「条件範囲1」「条件範囲2」と「条件範囲3」では「A2:A」「B2:B」のように表す範囲は異なっていますが、これでもOKです!どちらも2行目から最終行までを表す範囲となっているので問題ないです。

反対に「A2:A10」「B1:B5」や「A2:A」「B:B」のように異なる行数を指定すると後述のエラーに引っかかるので注意しましょう!

[応用2]ワイルドカードを指定した条件

SUMIFS関数では、SUMIF関数と同じようにワイルドカードを使って「条件」を記載できます。たとえば次のようにかけます。

書き方意味
“=XX”XXと同じ
“>XX”XXより大きい
“<XX”XXより小さい、XX未満
“>=XX”XX以上
“<=XX”XX以下
“<>XX”XXではない
書き方例意味
“*XX*”XXを含む
“XX*”XXで始まる
“*XX”XXで終わる
“?XX”なにか1文字+XXである
“??XX”なにか2文字+XXである

詳しい書き方については次の記事を参考にしてください。

https://ourinttech.com/spreadsheet/function-sumif

SUMIFS関数のエラー・注意点

[#VALUE!]SUMIFS の配列引数のサイズが異なります。

「[#VALUE!]SUMIFS の配列引数のサイズが異なります。」というエラーは、「条件範囲1」「条件範囲2」「条件範囲3」…のいずれかで指定している行数が異なる場合に現れます。たとえば下画像のようなパターンです。

ここでは「=SUMIFS(C2:C,A2:A,”<2024/05/01″,B:B,”モンスターボール”)」としていて、条件範囲1の「A2:A」と条件範囲2「B:B」が異なる行数を指定しているのでエラーが出ています。そのため、条件範囲2を「B2:B」とすればエラー解消です。

// 誤
=SUMIFS(C2:C,A2:A,"<2024/05/01",B:B,"モンスターボール")

// 正
=SUMIFS(C2:C,A2:A,"<2024/05/01",B2:B,"モンスターボール")