Excel初心者

【Excel】SUMIF関数の使い方!条件に合うデータだけを合計する方法を図解で解説

しんたろ。

SUMIF関数を使えば、「玉ねぎの売上だけ合計」「100以上の値だけ合計」のように、条件に合ったデータだけを合計できます。この記事で使い方をマスターしましょう!

この記事でわかること
  • SUMIF関数の基本的な書式と3つの引数
  • 条件に合うデータだけを合計する具体的な手順
  • 比較演算子・ワイルドカードを使った応用テクニック
  • SUMIFS関数で複数条件を指定する方法
  • SUMIFとSUMIFSの違い
この操作、VBAで一瞬で自動化できます
まずは関数の使い方を解説し、最後にVBA自動化コードも紹介します
‘ 条件付き合計を自動集計するマクロ
Sub SUMIF自動集計()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    Dim i As Long
    For i = 2 To 4
        ws.Cells(i, “E”).Value = WorksheetFunction.SumIf( _
            ws.Range(“A:A”), ws.Cells(i, “D”), ws.Range(“B:B”))
    Next i
    MsgBox “3件のSUMIF集計が完了しました”
End Sub
下のデモで実行結果を確認できます
📊 売上集計.xlsx – Excel
AB
1 部署売上
2 営業150,000
3 開発200,000
4 営業180,000
5 総務90,000
6 開発160,000
7 営業120,000
DE
1 部署合計
2 営業 450,000
3 開発 360,000
4 総務 90,000
準備完了 100%
3部署の売上合計がSUMIFで自動集計されました!
☝ SUMIFS関数を使えば複数条件での集計も可能です

SUMIF関数とは?基本の書式と引数

SUMIF関数は、指定した条件に一致するデータだけを合計するExcel関数です。

例えば、八百屋の売上データから「玉ねぎ」の売上だけを合計したり、「1000円以上」の取引だけを合計したりできます。

SUMIF関数の書式と3つの引数

=SUMIF(範囲, 検索条件, 合計範囲)
引数必須/任意説明
範囲必須条件を判定するセル範囲(例: 商品名の列)
検索条件必須合計する条件(文字列、数値、セル参照など)
合計範囲任意実際に合計するセル範囲(例: 売上の列)

合計範囲を省略すると、範囲に指定したセルの数値が合計されます。

SUMIF関数の3つの引数(範囲・条件・合計範囲)の仕組み図解
SUMIF関数の引数とデータフロー

日本語で言い換えると「『商品名(範囲)』が『玉ねぎ(検索条件)』なら『売上(合計範囲)』を合計してね」ということです!

SUMIF関数の基本的な使い方

八百屋の売上データから「玉ねぎ」の売上合計を求める例で解説します。

STEP1
データを確認する

C列に商品名、F列に売上金額が入力されたデータを用意します。

STEP2
SUMIF関数を入力する

結果を表示したいセルに以下の数式を入力します。

=SUMIF(C4:C30, H4, F4:F30)
  • C4:C30 → 商品名の範囲(条件を判定する列)
  • H4 → 「玉ねぎ」が入力されたセル(検索条件)
  • F4:F30 → 売上金額の範囲(合計する列)
STEP3
Enterキーで確定する

Enterキーを押すと、「玉ねぎ」の売上合計が表示されます。

STEP4
他の商品にもコピーする

数式を下のセルにコピーする場合は、範囲と合計範囲を絶対参照にしましょう。

=SUMIF($C$4:$C$30, H4, $F$4:$F$30)

範囲と合計範囲は$をつけて絶対参照にしないと、コピーしたときにズレてしまうので注意!

SUMIF関数で使える条件指定テクニック

SUMIF関数の検索条件には、比較演算子やワイルドカードを使うことで柔軟な条件指定ができます。

比較演算子で「以上」「以下」を指定する

演算子意味使用例説明
>より大きい“>1000”1000より大きい値を合計
<より小さい“<500”500より小さい値を合計
>=以上“>=1000”1000以上の値を合計
<=以下“<=500”500以下の値を合計
<>等しくない“<>玉ねぎ”「玉ねぎ」以外を合計

例えば、売上が1000以上のデータだけを合計する場合:

=SUMIF(F4:F30, ">=1000")

この場合、合計範囲を省略しているため、範囲に指定したF列の数値のうち1000以上の値が合計されます。

セル参照と比較演算子を組み合わせることもできます:

=SUMIF(F4:F30, ">="&H2)

ワイルドカードで部分一致の合計を出す

記号意味使用例マッチする文字列
*任意の文字列(0文字以上)“*玉*”玉ねぎ、小玉すいか等
?任意の1文字“?ねぎ”玉ねぎ、長ねぎ等

例えば、商品名に「りんご」を含むデータの売上合計:

=SUMIF(C4:C30, "*りんご*", F4:F30)

日付を条件にして合計する

特定の日付以降のデータを合計する場合:

=SUMIF(A4:A30, ">="&DATE(2024,4,1), F4:F30)

特定の期間のデータを合計する場合は、2つのSUMIF関数を引き算します:

=SUMIF(A4:A30, "<="&DATE(2024,6,30), F4:F30) - SUMIF(A4:A30, "<"&DATE(2024,4,1), F4:F30)

日付条件では比較演算子を""で囲み、&でDATE関数と結合するのがポイントです!

SUMIFS関数で複数条件を指定する方法

SUMIF関数は条件が1つだけですが、複数の条件を同時に指定したい場合はSUMIFS関数を使います。

SUMIFとSUMIFSの違い

項目SUMIFSUMIFS
条件の数1つだけ複数指定可能(最大127)
書式=SUMIF(範囲, 条件, 合計範囲)=SUMIFS(合計範囲, 範囲1, 条件1, 範囲2, 条件2, ...)
引数の順序合計範囲が最後合計範囲が最初

注意点として、SUMIFとSUMIFSでは引数の順序が異なります。SUMIFS関数では合計範囲が最初に来ます。

SUMIFS関数の使い方

例えば、「商品が玉ねぎ」かつ「地域が東京」の売上を合計する場合:

=SUMIFS(F4:F30, C4:C30, "玉ねぎ", D4:D30, "東京")
  • F4:F30 → 合計範囲(売上金額)
  • C4:C30 → 条件範囲1(商品名)
  • "玉ねぎ" → 条件1
  • D4:D30 → 条件範囲2(地域)
  • "東京" → 条件2

SUMIFS関数は引数の順番がSUMIFと違うので混同しないように注意しましょう!合計範囲が最初に来るのがポイントです。

SUMIF関数を使うときの注意点

絶対参照を使う

SUMIF関数をコピーする場合、範囲と合計範囲は絶対参照にしましょう。検索条件のセル参照は相対参照にすると、コピー先に合わせて条件が変わります。

=SUMIF($C$4:$C$30, H4, $F$4:$F$30)

空白セルの扱い

SUMIF関数で空白セルを条件にする場合:

  • 空白のセルを合計: 検索条件に""を指定
  • 空白以外のセルを合計: 検索条件に"<>"を指定
=SUMIF(C4:C30, "<>", F4:F30)

SUMIF関数をVBAで自動集計する方法

SUMIF関数の条件付き合計をVBAマクロで自動化すれば、複数条件の集計を一括で実行できます。

' 条件付き合計を自動集計するマクロ
Sub SUMIF自動集計()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    Dim i As Long
    For i = 2 To 4
        ws.Cells(i, "E").Value = WorksheetFunction.SumIf( _
            ws.Range("A:A"), ws.Cells(i, "D"), ws.Range("B:B"))
    Next i
    MsgBox "3件のSUMIF集計が完了しました"
End Sub

VBAマクロの実行結果は記事冒頭のインタラクティブデモで確認できます。ボタンを押すとアニメーションで動作をシミュレーションします。

よくある質問(FAQ)

SUMIF関数で合計範囲を省略するとどうなる?

範囲に指定したセルの数値がそのまま合計されます。範囲と合計範囲が同じ列の場合に便利です。

SUMIF関数の結果が0になるのはなぜ?

以下の原因が考えられます:

  • 検索条件の文字列にスペースが含まれている
  • 範囲と合計範囲の行数が揃っていない
  • 数値が文字列として入力されている
SUMIFとSUMIFSはどちらを使うべき?

条件が1つならSUMIF、2つ以上ならSUMIFSを使います。SUMIFSはSUMIFの上位互換ですが、引数の順序が異なるので注意してください。

SUMIF関数で別シートのデータを参照できる?

はい、できます。範囲や合計範囲にシート名を付けて指定します。例: =SUMIF(Sheet2!C4:C30, "玉ねぎ", Sheet2!F4:F30)

💻 操作を体験してみよう!

実際の操作手順をクリックして体験できます。各ステップをクリックしてみましょう。

X
SUMIF関数デモ.xlsx
E2
← D列の条件をクリック =SUMIF(A:A,”玉ねぎ”,B:B) → ¥2,800 =SUMIF(A:A,”トマト”,B:B) → ¥1,500 =SUMIF(A:A,”にんじん”,B:B) → ¥900 =SUMIF(B:B,”>=1000″,B:B) → ¥4,300
A B C D E
1 商品 売上 集計用 条件 合計
2 玉ねぎ 800 ¥2,800 ¥1,500 ¥900 ¥4,300
3 トマト 500
4 玉ねぎ 1,200
5 にんじん 900
6 トマト 1,000
7 玉ねぎ 800
8 キャベツ 1,100
「玉ねぎ」の売上合計: 800+1,200+800 = ¥2,800。A列が「玉ねぎ」の行だけB列を合計します。
「トマト」の売上合計: 500+1,000 = ¥1,500。商品名が「トマト」の行のみ集計。
「にんじん」の売上合計: ¥900。1行しか該当しない場合も正しく集計されます。
売上1,000円以上の合計: 1,200+1,000+1,100 = ¥4,300。比較演算子「>=1000」で数値条件も指定できます。
1 D列の「玉ねぎ」をクリックして該当行のハイライトと合計を確認
2 「トマト」「にんじん」で条件を切替えて結果の変化を確認
3 「>=1000」で比較演算子による数値条件の動作を確認

まとめ

SUMIF関数は、条件に合うデータだけを合計できる便利な関数です。複数条件が必要な場合はSUMIFS関数を使いましょう。

この記事のポイント
  • SUMIF関数の書式は=SUMIF(範囲, 検索条件, 合計範囲)
  • 比較演算子(>=、<=、<>など)で柔軟な条件指定ができる
  • ワイルドカード(*、?)で部分一致の合計が可能
  • 複数条件にはSUMIFS関数を使う(引数の順序に注意)
  • コピー時は範囲と合計範囲を絶対参照にする

SUMIF関数はデータ集計の基本中の基本です。比較演算子やワイルドカードも組み合わせて、効率的にデータをまとめましょう!


Excelスキルを活かしてSNS運用も自動化しませんか?

Excelの関数をマスターしたあなたなら、Googleスプレッドシート×GAS(Google Apps Script)を使ったSNS自動化ツールもすぐに使いこなせます。X(Twitter)やThreadsの予約投稿を、月額0円で自動化する方法をまとめています。

SNS予約投稿ツール完全ガイド|無料&買い切りツールを徹底比較

Excel業務の自動化
その手作業、自動化しませんか?

VBA開発・GAS連携・Webアプリ化まで、
業務に合わせた最適な自動化をご提案します。

1,600部ツール販売実績
15年製造業の業務経験
無料で相談する →
初回相談無料・お見積りだけでもOK
期間限定でChatGPT✖︎Googleスプレットシートのコンテンツ配布中!

LINEでExcelを気軽に学べる

しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
Profile
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
プロフィールを読む

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT ME
しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
記事URLをコピーしました