• 作成日 : 2025年10月16日

スプレッドシートのSUMIFS関数で複数条件の集計を効率化するには?使い方から応用テクニックまで徹底解説

Googleスプレッドシートで複数の条件を指定して数値を合計したい場合、SUMIFS関数が最も効率的な解決策となります。売上データの月別・部門別集計、在庫管理での条件付き合計、経費精算での項目別集計など、ビジネスシーンで頻繁に必要となる複数条件での集計作業を、SUMIFS関数を使えば数式一つで実現できます。

本記事では、SUMIFS関数の基本的な使い方から実践的な応用方法、よくあるエラーの解決方法まで、実例を交えながら詳しく解説します。

SUMIFS関数の基本的な使い方と構文は?

SUMIFS関数は、複数の条件をすべて満たすセルの値を合計する関数で、構文は=SUMIFS(合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, …)という形式で記述します。

この関数は、単一条件のSUMIF関数の拡張版として、より複雑な集計ニーズに対応できる強力な機能を持っています。最大127組の条件を設定でき、AND条件(すべての条件を満たす)での集計が可能です。

参考:SUMIFS 関数 – Google ドキュメント エディタ ヘルプ

SUMIFS関数の基本構文と引数の説明

SUMIFS関数の基本的な構文は以下のとおりです。

=SUMIFS(合計範囲, 条件範囲1, 条件1, [条件範囲2, 条件2, …])

各引数の役割
  • 合計範囲:実際に合計する数値が入っているセル範囲
  • 条件範囲1:1つ目の条件を評価する範囲
  • 条件1:条件範囲1に適用する条件
  • 条件範囲2, 条件2:追加の条件(オプション)

実例として、売上データから「東京支店」の「4月」の売上を集計する場合:

=SUMIFS(D2:D100, B2:B100, “東京支店”, C2:C100, “4月”)

この数式では、D列の売上金額を、B列が「東京支店」かつC列が「4月」の条件で合計します。

条件の指定方法と比較演算子の活用

条件には文字列だけでなく、比較演算子を使った数値の範囲指定も可能です。

主な比較演算子と使用例
  • “>=1000”: 1000以上
  • “<5000”: 5000未満
  • “<>0”: 0以外
  • “*田*”: 「田」を含む(ワイルドカード)
  • “?”&”月”: 1文字+「月」(例:4月、5月)

実例:売上金額が10万円以上50万円未満の東京支店のデータを集計:

=SUMIFS(D2:D100, B2:B100, “東京支店”, D2:D100, “>=100000”, D2:D100, “<500000”)

セル参照を使った動的な条件設定

条件を直接入力する代わりに、セル参照を使うことで、条件を変更しやすい動的な数式を作成できます。

=SUMIFS(D2:D100, B2:B100, F1, C2:C100, G1)

この場合、F1セルに支店名、G1セルに月を入力することで、条件を簡単に変更できます。さらに、比較演算子と組み合わせる場合は、文字列結合演算子「&」を使用します。

=SUMIFS(D2:D100, D2:D100, “>=”&H1, D2:D100, “<=”&H2)

H1に最小値、H2に最大値を入力すれば、範囲指定が可能になります。

SUMIFS関数の実践的な利用シーンと事例は?

SUMIFS関数は売上分析、在庫管理、経費精算、勤怠管理など、複数の軸で数値を集計する必要があるあらゆる業務で活用でき、手作業での集計ミスを防ぎながら作業時間を大幅に短縮します。

実際の業務では、単純な合計よりも条件付き集計のニーズが多く、SUMIFS関数の活用により業務効率が飛躍的に向上します。

売上データの多次元分析での活用

営業管理において、支店別・商品別・期間別の売上集計は日常的な作業です。以下は、実務でよく使われる売上分析の例です。

商品カテゴリー「家電」の第2四半期(4-6月)の売上を支店別に集計:

=SUMIFS($E$2:$E$1000, $B$2:$B$1000, “東京支店”, $C$2:$C$1000, “家電”, $D$2:$D$1000, “>=2024/4/1”, $D$2:$D$1000, “<=2024/6/30”)

この数式を各支店用にコピーすることで、瞬時に支店別の集計表が作成できます。絶対参照($記号)を適切に使用することで、コピー時の参照ズレを防げます。

在庫管理と発注点管理への応用

在庫管理では、特定の条件下での在庫金額や数量の把握が重要です。

倉庫別・カテゴリー別の在庫金額集計例:

=SUMIFS(在庫金額範囲, 倉庫名範囲, “関東倉庫”, カテゴリー範囲, “消耗品”, 在庫数範囲, “>0”)

さらに、発注点を下回った商品の把握にも活用できます。

=SUMIFS(発注必要数量, 在庫数範囲, “<“&発注点範囲, 商品状態範囲, “販売中”)

経費精算と予算管理での実装

部門別・費目別の経費集計は、予算管理の基本作業です。

特定期間の部門別経費を費目ごとに集計する例:

=SUMIFS(金額列, 部門列, “営業部”, 費目列, “交通費”, 日付列, “>=”&DATE(2024,4,1), 日付列, “<=”&DATE(2024,4,30))

予算との比較分析を行う場合は、SUMIFS関数の結果を別の計算式に組み込みます。

=予算セル – SUMIFS(実績金額, 部門, “営業部”, 費目, “交通費”, 期間, “2024年4月”)

SUMIFS関数の応用テクニックと高度な使い方は?

SUMIFS関数は他の関数と組み合わせることで、より複雑な集計や動的なレポート作成が可能になり、ARRAYFORMULA、QUERY関数、ピボットテーブルとの併用で分析力が格段に向上します。

基本的な使い方をマスターしたら、これらの応用技術で業務の自動化レベルを高められます。

日付関数との組み合わせによる期間集計

TODAY関数やEOMONTH関数と組み合わせることで、動的な期間集計が可能になります。

当月の売上を自動集計する数式:

=SUMIFS(売上列, 日付列, “>=”&DATE(YEAR(TODAY()),MONTH(TODAY()),1), 日付列, “<=”&EOMONTH(TODAY(),0))

過去3ヶ月の移動合計を計算:

=SUMIFS(売上列, 日付列, “>=”&EDATE(TODAY(),-3), 日付列, “<=”&TODAY())

前年同月の売上合計を自動計算:

=SUMIFS(売上列, 日付列, “>=”&DATE(YEAR(TODAY())-1,MONTH(TODAY()),1), 日付列, “<=”&DATE(YEAR(TODAY())-1,MONTH(TODAY()),DAY(TODAY())))

ワイルドカードと正規表現の活用方法

部分一致や複雑なパターンマッチングには、ワイルドカードが有効です。

商品名に「Pro」を含むすべての商品の売上合計:

=SUMIFS(売上列, 商品名列, “*Pro*”)

特定の形式の商品コード(例:A-3桁の数字)に一致:

=SUMIFS(売上列, 商品コード列, “A-???”)

複数のパターンに対応する場合は、SUMIFS関数を複数組み合わせます。

=SUMIFS(売上列, 商品名列, “*Pro*”) + SUMIFS(売上列, 商品名列, “*Premium*”)

配列数式とMAP関数・LAMBDA関数を組み合わせた一括処理

複数の条件セットに対して一度に集計を行う場合、MAP関数とLAMBDA関数を組み合わせることで実現できます。

=MAP(A2:A10, LAMBDA(rowValue, SUMIFS(売上データ!D:D, 売上データ!B:B, rowValue, 売上データ!C:C, B1) ))

この方法により、集計表の各行に対応した合計を一括で計算できます。

INDIRECT関数による動的な範囲指定

シート名や範囲を動的に変更したい場合、INDIRECT関数と組み合わせます。

=SUMIFS(INDIRECT(A1&”!D:D”), INDIRECT(A1&”!B:B”), “東京”, INDIRECT(A1&”!C:C”), “4月”)

A1セルにシート名を入力することで、参照先のシートを切り替えられます。

SUMIFS関数の集計がうまくいかない場合の対処法は?

SUMIFS関数でエラーが発生したり期待した結果が得られない場合は、データ型の不一致、範囲サイズの相違、条件式の記述ミス、空白セルの扱いなどが主な原因であり、それぞれに対する具体的な解決方法があります。

トラブルシューティングの手順を理解することで、問題を素早く解決できます。

よくあるエラーと解決方法

#VALUE!エラー:範囲のサイズが一致していない場合に発生します。

問題のある例:

=SUMIFS(D2:D100, B2:B99, “東京”)  // 範囲の行数が異なる

修正例:

=SUMIFS(D2:D100, B2:B100, “東京”)  // すべての範囲を同じサイズに

#N/Aエラー:条件に配列を使用した場合に発生することがあります。

問題のある例:

=SUMIFS(D:D, B:B, {“東京”,”大阪”})  // 配列は使用不可

修正例:

=SUMIFS(D:D, B:B, “東京”) + SUMIFS(D:D, B:B, “大阪”)

データ型の不一致による集計ミスの回避

数値が文字列として保存されている場合、集計されません。VALUE関数で変換するか、データ自体を修正します。

データ修正用の数式:

=ARRAYFORMULA(VALUE(A2:A100))

日付の比較で問題が発生する場合は、DATEVALUE関数を使用:

=SUMIFS(金額列, 日付列, “>=”&DATEVALUE(“2024/4/1”))

空白セルと0の扱い方

空白セルを除外して集計する場合:

=SUMIFS(D:D, B:B, “東京”, D:D, “<>”)

0を除外して集計する場合:

=SUMIFS(D:D, B:B, “東京”, D:D, “<>0”)

空白と0の両方を除外:

=SUMIFS(D:D, B:B, “東京”, D:D, “>0”)

パフォーマンス改善のための最適化

大量のデータで処理速度が遅い場合の対策
  1. 範囲を限定する:列全体(A:A)ではなく、必要な範囲(A2:A1000)を指定
  2. QUERY関数への置き換え:複雑な条件の場合、QUERY関数の方が高速な場合があります
    =QUERY(A:D, “SELECT SUM(D) WHERE B = ‘東京’ AND C = ‘4月'”, 0)
  3. 計算の分割:中間結果を別セルに保存し、段階的に集計

SUMIF関数との違いと使い分けのポイントは?

SUMIF関数は単一条件での集計に特化し、SUMIFS関数は複数条件での集計に対応しています。条件数と引数の順序が主な違いですが、将来的な拡張性を考慮してSUMIFS関数の使用を推奨します。

両関数の特徴を理解することで、適切な選択ができます。

SUMIF関数とSUMIFS関数の構文比較

SUMIF関数の構文:

=SUMIF(条件範囲, 条件, [合計範囲])

SUMIFS関数の構文:

=SUMIFS(合計範囲, 条件範囲1, 条件1, [条件範囲2, 条件2, …])

引数の順序が異なることに注意が必要です。SUMIF関数では合計範囲が最後(省略可能)ですが、SUMIFS関数では最初に指定します。

単一条件での使用時の比較

単一条件の場合、両方の関数が使用可能です。

SUMIF使用例:

=SUMIF(B:B, “東京”, D:D)

SUMIFS使用例(同じ結果):

=SUMIFS(D:D, B:B, “東京”)

SUMIFS関数を使用するメリットは、後から条件を追加しやすいことです。メンテナンス性を考慮すると、最初からSUMIFS関数を使用することを推奨します。

条件追加時の移行方法

SUMIF関数からSUMIFS関数への移行手順
  1. 合計範囲を最初の引数に移動
  2. 条件範囲と条件の順序を維持
  3. 追加条件を末尾に追加

移行前(SUMIF):

=SUMIF(B2:B100, “東京”, D2:D100)

移行後(SUMIFS):

=SUMIFS(D2:D100, B2:B100, “東京”, C2:C100, “4月”)

他の集計関数との組み合わせで実現する高度な分析は?

SUMIFS関数をCOUNTIFS、AVERAGEIFS、MAXIFSなどの条件付き集計関数と組み合わせることで、合計だけでなく件数、平均、最大値などを含む包括的な分析レポートを作成できます。

これらの関数を組み合わせることで、ダッシュボードやKPI管理表を効率的に作成できます。

COUNTIFSとの併用による集計件数の把握

売上合計と件数を同時に把握する例:

合計: =SUMIFS(金額列, 支店列, “東京”, 月列, “4月”)

件数: =COUNTIFS(支店列, “東京”, 月列, “4月”)

平均: =SUMIFS(金額列, 支店列, “東京”, 月列, “4月”) / COUNTIFS(支店列, “東京”, 月列, “4月”)

AVERAGEIFSによる条件付き平均の算出

SUMIFS関数の結果を補完する平均値分析:

=AVERAGEIFS(売上列, 支店列, “東京”, 商品カテゴリー列, “家電”)

中央値や標準偏差が必要な場合は、FILTER関数と統計関数を組み合わせます。

=MEDIAN(FILTER(売上列, (支店列=”東京”)*(商品カテゴリー列=”家電”)))

ピボットテーブルとの使い分け指針

SUMIFS関数を使用する場合
  • 特定の条件での集計値を数式で取得したい
  • 他の数式と連携させたい
  • リアルタイムで更新される必要がある
  • レポートのレイアウトが固定
ピボットテーブルを使用する場合
  • 多次元での分析が必要
  • インタラクティブな分析をしたい
  • 集計軸を頻繁に変更する
  • ドリルダウン分析が必要

スプレッドシートでSUMIFS関数を使いこなして業務を効率化

GoogleスプレッドシートのSUMIFS関数は、複数条件での数値集計を可能にする強力な関数であり、適切に活用することで手作業での集計作業を大幅に削減できます。基本的な構文を理解し、実務での利用シーンに応じた応用テクニックを身につけることで、売上分析、在庫管理、経費精算などの業務効率が飛躍的に向上します。エラーが発生した場合も、データ型の確認や範囲の調整といった基本的な対処法を知っていれば、スムーズに解決できます。

SUMIFS関数をマスターすることで、より高度なデータ分析と意思決定の迅速化を実現し、組織全体の生産性向上に貢献できるでしょう。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事