
数値を合計するだけなら簡単です――ExcelのSUM関数があっという間に処理してくれます。しかし、特定の条件を満たす値だけを合計したい場合はどうすればよいでしょうか?そこで活躍するのがSUMIFとSUMIFSです。これらの関数を使えば、1つまたは複数の条件に基づいて選択的に数値を合計でき、日常のスプレッドシート業務で最も実用的な数式のひとつです。
このガイドでは、両関数を基礎から丁寧に解説します。構文、実践的な例、よくあるミス、そして実際に手を動かして試せる具体的なシナリオを紹介します。売上の追跡、予算管理、プロジェクトデータの分析など、条件付き合計は手作業の手間を大幅に削減してくれます。
SUMIFは、別の範囲内の対応するセルが指定した条件を満たす場合にのみ、範囲内の値を合計します。条件が1つの場合に最適です――たとえば「東地区のすべての売上を合計する」や「500ドルを超える費用を合算する」といった場面で威力を発揮します。
=SUMIF(range, criteria, [sum_range])
列Aに商品カテゴリ、列Bに売上金額が入力されているとします。「Electronics」のすべての売上を合計するには:
=SUMIF(A2:A100, "Electronics", B2:B100)
列Bの値のうち1000を超えるものをすべて合計するには:
=SUMIF(B2:B100, ">1000")
rangeとsum_rangeが同じ場合は、第3引数を省略できます。また、>、<、>=、<>などの比較演算子は引用符で囲む必要があります。
SUMIFSはSUMIFの複数条件版です。2つ以上の条件を指定でき、Excelはすべての条件を同時に満たす行の値のみを合計します。引数の構造はSUMIFと少し異なり、合計範囲が最初に来ます。
=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
同じデータセットを使って、「East」地区の「Electronics」の売上を合計するには(列Cに地区名が入力されているとします):
=SUMIFS(B2:B100, A2:A100, "Electronics", C2:C100, "East")
この数式は各行を確認し、列Aが「Electronics」かつ列Cが「East」であれば、対応する列Bの値を合計に含めます。
実際のシナリオを構築してみましょう。次のような列を持つ売上レポートを管理しているとします:
| A: 担当者 | B: 地区 | C: 商品 | D: 月 | E: 売上高 |
|---|---|---|---|---|
| Alice | East | Laptops | January | $4,200 |
| Bob | West | Phones | January | $3,800 |
| Alice | East | Phones | February | $2,900 |
| Carol | East | Laptops | February | $5,100 |
| Bob | West | Laptops | February | $4,400 |
データは2行目から500行目まであるとします。よくあるビジネス上の疑問に答えるための数式を紹介します:
Aliceの総売上高:
=SUMIF(A2:A500, "Alice", E2:E500)
East地区の総売上高:
=SUMIF(B2:B500, "East", E2:E500)
East地区のLaptopsの総売上高:
=SUMIFS(E2:E500, C2:C500, "Laptops", B2:B500, "East")
AliceのJanuaryにおけるLaptopsの総売上高:
=SUMIFS(E2:E500, A2:A500, "Alice", C2:C500, "Laptops", D2:D500, "January")
条件を追加するたびに、結果がさらに絞り込まれることがわかります。手作業では数分かかるような分析でも、SUMIFSなら瞬時に実行できます。完全なレポートツールを構築する場合は、ExcelのセールスダッシュボードでKPIとパフォーマンスを追跡するで紹介されているテクニックと組み合わせると効果的です。
条件を数式に直接入力する方法は1回限りの計算には便利ですが、ダッシュボードやレポートではセルを参照することで数式が動的になり、更新も容易になります。
セルH2に「Alice」、セルH3に「Laptops」と入力すると、数式は次のようになります:
=SUMIFS(E2:E500, A2:A500, H2, C2:C500, H3)
H2を「Bob」に変更するだけで、Bobのノートパソコン売上が即座に再計算されます。このアプローチはインタラクティブなダッシュボードに欠かせません。数式をコピーしたときに参照がずれないようにするには、Excelのセル参照――相対参照と絶対参照を理解しておくことが重要です。
両関数はワイルドカードをサポートしており、データの表記が統一されていない場合に特に便利です:
"Lap*"は「Laptops」「Laptop Bag」などに一致します。"Bo?"は「Bob」「Boy」「Bog」などに一致します。~*でリテラルのアスタリスクに一致させます。例 ― 「Lap」で始まる商品のすべての売上高を合計する:
=SUMIF(C2:C500, "Lap*", E2:E500)
Excelは日付をシリアル値として保存しているため、SUMIFSは日付を自然に扱えます。比較演算子を使って特定の日付範囲の値を合計することができます。
列Dに実際の日付値(テキストではなく)が入力されているとして、2024年1月1日から3月31日までの売上高を合計するには:
=SUMIFS(E2:E500, D2:D500, ">="&DATE(2024,1,1), D2:D500, "<="&DATE(2024,3,31))
&演算子を使って比較演算子(テキスト)とDATE関数の結果を連結しています。これは非常によく使われるパターンなので覚えておきましょう。
SUMIFSのすべての範囲は同じサイズでなければなりません。sum_rangeが500行なのにcriteria_rangeが499行だとエラーが返されます。範囲が一致しているか必ず確認してください。
=SUMIF(B2:B100, >500, B2:B100)と書くとエラーになります。演算子とテキストの条件は引用符で囲む必要があります:">500"や"Electronics"のように記述してください。
SUMIFでは、sum_rangeは第3引数です。SUMIFSでは第1引数です。この混同は誤った結果の原因になりやすいため、毎回引数の順序を必ず確認してください。
criteria_range列にテキストとして保存された数値がある場合、数値の条件で一致しません。先にデータをクリーニングする必要があります。Power Query:データのインポートと変換をプロ並みに行うの記事では、こうしたデータ品質の問題を効率的に処理する方法を解説しています。
Excelで条件付き合計を行う方法は他にもあり、それぞれの使い分けを知っておくと役立ちます:
ほとんどのビジネスレポート業務では、SUMIFSが最適なツールです。高速で可読性が高く、条件付き合計のシナリオの大部分に対応できます。完全な財務概要を構築する際は、Excelの予算テンプレート:個人・ビジネスの財務を管理するのテクニックとSUMIFSを組み合わせることで、強力で柔軟なレポートシステムを実現できます。
SUMIFSは他の数式の中にネストすることで、さらに強力になります:
合計に対する割合を計算する:
=SUMIFS(E2:E500, B2:B500, "East") / SUM(E2:E500)
2つの条件付き合計を比較する:
=SUMIFS(E2:E500, B2:B500, "East") - SUMIFS(E2:E500, B2:B500, "West")
IFと組み合わせて空の条件を適切に処理する:
=IF(H2="", SUM(E2:E500), SUMIFS(E2:E500, A2:A500, H2))
論理数式のスキルをさらに高めたい場合は、IF関数:論理テストとネストされたIFの記事が次のステップとして最適です。
4つや5つの条件を持つ複雑なSUMIFSを前に、なぜゼロが返されるのか見当がつかないときは、必要なことを平易な言葉で説明してみましょう――GPTExcelのようなツールなら、「地区がEast、商品がLaptops、日付が2024年Q1の売上高を合計する」といった説明から正確な数式を即座に生成し、確認・利用できる正しい構文を提示してくれます。
直接的には扱えません。SUMIFは単一条件向けに設計されています。2つ以上の条件が必要な場合はSUMIFSを使用してください。ただし、条件が同じ範囲に適用されてOR条件(例:「East」または「West」の行を合計する)を求める場合は、複数のSUMIFの結果を足し合わせることで対応できます。
最もよくある原因は、テキストとして保存された数値が合計範囲または条件範囲にある、セル値に余分なスペースがある、範囲サイズが一致していない、などです(大文字小文字の違いはSUMIFSでは問題になりません)。スペースの問題はTRIM関数またはデータクリーニングの手順で解決できます。
はい、日付がExcelの日付値(テキストではなく)として保存されている場合に対応しています。DATE関数との比較演算子か、直接の日付参照を使用してください:=SUMIFS(E2:E500, D2:D500, ">="&H1, D2:D500, "<="&H2)(H1とH2に開始日・終了日を入力)。
Excelでは1つのSUMIFS数式に最大127の条件範囲と条件のペアを指定できます――実際の使用ではまず問題にならない数です。非常に大きなデータセットと多くの条件を組み合わせると処理が遅くなることがありますが、一般的なビジネスデータ(数万行程度)ではSUMIFSは高速かつ安定して動作します。
ExcelのTEXT関数が書式コードを使って数値、日付、時刻を書式付きテキスト文字列に変換する方法を、実際の例と実践的なユースケースを交えて解説します。
ExcelのIF関数の仕組み、複数のIFをネストする方法、そしてより読みやすいロジックを実現するIFSやSWITCHなどの最新の代替関数について解説します。
ExcelのSUMIFとSUMIFSをマスターして、1つまたは複数の条件に基づいてデータを合計する方法を、実際の構文・実践的な例・ステップバイステップの解説で学びましょう。