Menu

SUMIF関数の使い方: 条件に合う値を合計する

=SUMIF(A2:A7,"North",C2:C7)は、A列がNorthの行についてC2:C7の値を合計します。以上・以下、文字列を含む、日付、別シートを条件にした合計を、編集できるシートで学びます。

このページのシートはすべて実際に動きます。数値や数式を変えると再計算されます。

=SUMIF(A2:A7,"North",C2:C7)は、A列がNorthのすべての行について、C2:C7の売上を合計します。SUMIFは1つの範囲を条件と照らし合わせ、一致した行について別の範囲の値を足します。

1つの地域の売上合計
F2
ABCDEF
1RegionProductSalesRegionTotal
2NorthApple120North230
3SouthPear45South245
4NorthPear80
5EastApple55
6SouthApple200
7NorthApple30
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

F2はNorthの3行の120、80、30を足して230を表示します。F3は地域をE3から取ります。E3をEastに変えると55になります。C列のどの数値を変えても、両方の合計が更新されます。

SUMIF関数の構文

=SUMIF(range, criteria, [sum_range])
  • range(範囲)は条件と照らし合わせるセルです。
  • criteria(検索条件)は条件です。引用符で囲んだ文字列("North")、比較(">100")、ワイルドカードのパターン("*apple*")、またはセル(E3、演算子付きなら">"&F2)で書きます。
  • sum_range(合計範囲)は足すセルです。省略でき、省略するとSUMIFはrange自体の一致したセルを足します。

rangeとsum_rangeは行ごとに対応するので、同じ行から始まり同じ大きさにしておきます。小数点にカンマを使う言語に設定されたExcelでは、引数をセミコロンで区切ります:=SUMIF(A2:A7;"North";C2:C7)。

SUMIFで以上・以下の値を合計する

ある値より上や下の数値を足すときは、条件と合計が同じ列にあるので、sum_rangeを省略できます。

大きさで合計する
F2
ABCDEF
1RegionProductSalesConditionTotal
2NorthApple120Over 100320
3SouthPear45100 or less210
4NorthPear80Not North300
5EastApple55Limit50
6SouthApple200Over the limit455
7NorthApple30
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

F2は120と200を、F3は残りの4つを足すので、2つを合わせると必ず総合計になります。F4は「等しくない」の例で、North以外のすべてです。F6は基準値をF5から読みます。演算子は引用符の中に書き、セルを&でつなぎます:">"&F5。">F5"とは書きません。

SUMIFで文字列を含むセルを合計する

条件の中の*は任意の数の文字を、?はちょうど1文字を表します。"*apple*"は、名前のどこかにappleを含む商品に、大文字小文字を問わず一致します。

単語を含む商品を合計する
E2
ABCDE
1ProductSalesConditionTotal
2Apple120contains apple250
3Pineapple45exactly Apple120
4Pear80starts with P325
5Green apple55word in D680
6Plum200pear
7Apple cider30
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

E2はApple、Pineapple、Green apple、Apple ciderを足します。ワイルドカードのないE3は、ちょうどAppleのセルだけを足します。E5はD6の単語からパターンを作ります。D6をciderに変えると、E5はciderの売上だけを表示します。ほかのパターンや、アスタリスクそのものを表す~はワイルドカードのページにあります。

何かが入っているセルの隣の値を足すには"<>"(空白でない)を使います:=SUMIF(A2:A7,"<>",B2:B7)。""はセルが空の行を足します。

SUMIFで日付を条件にする

日付は数値なので、">="や"<"などが使えます。日付はDATEで作るかセルに入れ、&で演算子につなげます。

ある日付以降の売上
F2
ABCDEF
1RegionSalesDateConditionTotal
2North1202026-01-05From Feb 1365
3South452026-01-12Cutoff2026-03-01
4North802026-02-03Before the cutoff300
5East552026-02-18On Jan 1245
6South2002026-03-02
7North302026-03-20
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

F2は2月1日以降の4件の注文、80、55、200、30を足して365になります。F4はF3の日付より前の注文を足します。1か月の合計には開始日と終了日、つまり同じ列に2つの条件が必要なので、SUMIFSを使います:=SUMIFS(B2:B7,C2:C7,">="&DATE(2026,2,1),C2:C7,"<"&DATE(2026,3,1))。

別シートの値をSUMIFで合計する

範囲は別のシートにあってもかまいません。範囲の前にシート名と!を書きます。下ではデータがSalesタブに、集計が別のタブにあります。Salesタブをクリックすると、足される行が見られます。

ライブシート
B2
AB
1RegionTotal
2North230
3South245
4East55
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

B2はB4まで下にコピーされています。条件のA2はA3、A4へと動き、$は両方の範囲をSalesシートの同じ行に固定します。$がないと、3つ目のコピーはSales!A4:A9を読んで最初の行を取りこぼします。見出しのリストを作り、それぞれの隣にSUMIFを1つずつ置くこの形で、ピボットテーブルを使わずにカテゴリー別の集計が作れます。スペースを含むシート名は引用符で囲みます:'Sales 2026'!$A$2:$A$7。

練習: SUMIF

やってみよう: 1つの商品の合計
F2
ABCDEF
1RegionProductSalesProductTotal
2NorthApple120Apple
3SouthPear45
4NorthPear80
5EastApple55
6SouthApple200
7NorthPlum30
8WestApple65
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: Appleの行の売上を合計してください。数式はF2に書きます。

やってみよう: 大口の注文だけ
E2
ABCDE
1OrderAmountConditionTotal
2A-101120100 or more
3A-10245
4A-103310
5A-104100
6A-10585
7A-106140
8A-10799
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: B2:B8のうち100以上の注文を合計してください。数式はE2に書きます。

SUMIFで複数の条件を指定する

SUMIFが受け取る条件は1つです。よくあるのは次の2つの場合です。

両方の条件を満たす(NorthかつApple)場合はSUMIFSを使います。合計範囲が先に来て、その後に条件の組が続きます。

=SUMIFS(C2:C7,A2:A7,"North",B2:B7,"Apple")

1つの列の値のどちらか(NorthまたはSouth)の場合は、SUMIFに波かっこでリストを渡して2つの結果をSUMするか、SUMIFを2つ足します。

=SUM(SUMIF(A2:A7,{"North","South"},C2:C7))
=SUMIF(A2:A7,"North",C2:C7)+SUMIF(A2:A7,"South",C2:C7)

計算に対する条件(日付の月、売上と価格の積)はSUMIFでは扱えませんが、SUMPRODUCTなら扱えます。

SUMIFが0や間違った合計を返す理由

  • 条件が一度も一致しない。 末尾にスペースの付いた「North 」は「North」と等しくありません。=COUNTIF(A2:A7,"North")で条件を試してください。これが0なら、問題は合計ではなく一致のほうです。
  • 合計範囲に文字列として保存された数値がある。 SUMIFはそれを黙って飛ばします。たいていセルの左に寄っていて緑色の三角形が付いています。先に数値に変換してください。
  • セルが引用符の中にある。 ">F5"はF5という文字列と比べます。">"&F5と書いてください。
  • 範囲の大きさが違う。 =SUMIF(A2:A7,"North",C2)はエラーを返しません。Excelはsum_rangeをその最初のセルからrangeと同じ大きさに広げます。それで動きはしますが、合計範囲が違う行から始まっていると間違ったセルを黙って足すので、2つの範囲は必ず同じ行にしてください。
  • 範囲が閉じている別のブックにある。 ファイルを開くまで、SUMIFは#VALUE!を表示します。

よくある質問

ExcelのSUMIFはどう動きますか?

=SUMIF(range, criteria, sum_range)はrangeの各セルを条件と照らし合わせ、一致したらsum_rangeの同じ行のセルを足します。=SUMIF(A2:A7,"North",C2:C7)はNorthの行のC列を合計します。

ある数値より大きい値を合計するには?

合計範囲を省略し、比較を引用符の中に書きます。=SUMIF(C2:C7,">100")はC2:C7のうち100より大きい値をすべて足します。基準値がセルにあるなら=SUMIF(C2:C7,">"&F2)と書きます。

セルが文字列を含むときに合計するには?

文字列をアスタリスクで囲みます。=SUMIF(B2:B7,"*apple*",C2:C7)は、B列がappleを含む行(Apple、Pineapple、Green appleなど)のC列を足します。一致は大文字と小文字を区別しません。

SUMIFで複数の条件を指定するには?

すべての条件を満たす行を合計するならSUMIFSを使います:=SUMIFS(C2:C7,A2:A7,"North",B2:B7,"Apple")。1つの列の2つの値のどちらかなら、リストの結果を合計します:=SUM(SUMIF(A2:A7,{"North","South"},C2:C7))。

SUMIFが0を返すのはなぜですか?

たいていは条件が一度も一致していない(データの末尾にスペースがある、">"&F2ではなく">F2"と書いた)か、合計範囲の数値が文字列として保存されていてSUMIFに飛ばされています。同じ範囲と条件のCOUNTIFで一致を確かめてください。

Coddyのプログラミング言語のイラスト

Coddyでコードを学ぼう

始める