「7月分の売上だけを合計したい」のように、特定の期間に絞って金額を集計したいとき、結論から言うとSUMIFS関数で日付を「以上」と「以下」の2条件で挟むことで、期間内の数値だけを1つの数式で合計できます。この記事ではSUMIFだけでは書けない理由、日付範囲の指定方法、月をまたぐ集計の注意点まで解説します。
日付範囲を指定して合計する基本の書き方
基本の形は次の通りです。
=SUMIFS(合計範囲,日付範囲,">="&DATE(開始年,開始月,開始日),日付範囲,"<="&DATE(終了年,終了月,終了日))
同じ「日付範囲」に対して「開始日以上」と「終了日以下」という2つの条件を重ねることで、指定した期間内の行だけを合計する書き方です。
なぜSUMIFではなくSUMIFSなのか
SUMIF関数は条件範囲と条件を1組しか指定できないため、「以上」と「以下」という2つの条件を同時に満たす必要がある日付範囲の指定には使えません。条件範囲がすべて同じ列(日付列)であっても、条件が2つある時点でSUMIFSを使う必要があります。SUMIFSは条件範囲・条件のペアを何組でも追加できるため、日付範囲に加えて「担当者が佐藤」のような条件をさらに重ねることも可能です。
具体例:7月分の売上だけを合計する
次のような売上データ(A1:C9)があるとします。A列が日付、B列が担当者、C列が金額です。
| A(日付) | B(担当者) | C(金額) | |
|---|---|---|---|
| 2 | 2026/6/3 | 佐藤 | 12000 |
| 3 | 2026/6/10 | 鈴木 | 8500 |
| 4 | 2026/6/15 | 佐藤 | 15000 |
| 5 | 2026/6/20 | 田中 | 9800 |
| 6 | 2026/7/2 | 鈴木 | 11000 |
| 7 | 2026/7/8 | 佐藤 | 13500 |
| 8 | 2026/7/15 | 高橋 | 7200 |
| 9 | 2026/7/22 | 田中 | 13500 |
A列(日付)が2026年7月1日から7月31日までの行だけを対象に、C列(金額)を合計したい場合、次のように書きます。
=SUMIFS(C2:C9,A2:A9,">="&DATE(2026,7,1),A2:A9,"<="&DATE(2026,7,31))
A列(日付)が2026年7月1日以上かつ7月31日以下の行だけを対象に、C列(金額)を合計する、という意味の数式です。
該当するのは6〜9行目の4件(11,000円・13,500円・7,200円・13,500円)なので、合計は45,200円になります。
「月末」を毎回入力しなくて済む書き方
月によって末日が28日〜31日と変わるため、終了日を手入力すると間違えやすくなります。終了日には翌月1日の「未満」を使うと、末日を意識せずに済みます。
=SUMIFS(C2:C9,A2:A9,">="&DATE(2026,7,1),A2:A9,"<"&DATE(2026,8,1))
7月1日以上、8月1日未満(=7月中すべて)の行を対象に合計する、という意味の数式で、結果は先ほどと同じ45,200円になります。
よくあるエラー・注意点
- 日付が文字列として入力されていると正しく判定されない: セルの日付が左揃えで表示されている場合、文字列として入力されている可能性があります。日付はシリアル値(右揃えで表示)として入力しましょう。
- DATE関数を使わず”2026/7/1″と直接書くと環境依存になる: 地域設定によって日付の解釈が変わることがあるため、DATE(年,月,日)で明示的に指定するのが安全です。
- 開始日・終了日の不等号を逆にすると0件になる: “>=”と”<=”を逆に書いてしまうと該当行が0件になり、合計が0のまま気づきにくいので注意しましょう。
まとめ
SUMIFSで同じ日付列に「以上」「以下」(または「未満」)の2条件を重ねることで、期間を絞った集計を1つの数式で行えます。期間×担当者で平均を求めたい場合はAVERAGEIFSで複数条件の平均を計算する方法、集計結果を金額順に順位付けしたい場合はRANK関数で同順位を考慮した順位付けをする方法もあわせてご覧ください。複数条件の集計の基本はSUMIFSで複数条件のOR集計をする方法で詳しく解説しています。





