Excelで月別に売上を集計したいときはないでしょうか。
けど、そんな中で悩むことは、
・MONTH関数だけでは同じ月の数字がうまく分けられない
・毎月手で集計するのが手間で、ミスが起きる
ですよね。
今回はそんなお悩みを解決する
についてまとめます!
完成イメージ
月ごとの売上を集計したいときは、日付から「月」を取り出して条件に使うのがポイントです。
今回は
・MONTH関数で「月」の列を作り、SUMPRODUCT関数で月別に合計する方法
をゴールにします。
さらに、件数をCOUNTIFS関数で数える手順と、年をまたぐときの注意点まで身につきます。

上の画像が完成形です。月ごとの合計と件数が一覧で出て、年をまたぐ12月も年単位で分けて確認できます。
なお、毎月の集計を一括で出すVBAや、つまずきやすいポイントのトラブルシュート、ピボットテーブルとの違いもあわせてご紹介します。
早速実装して試してみましょう!
もくじ
STEP1. 元データを用意する
まずは月別に集計したい売上表を用意します。
1行目が見出しで、A列が日付、B列が商品、C列が売上です。
データは12件で、12月・1月・2月・3月の売上が混ざっています。
今回はこのC列の売上を、月ごとに合計していきましょう。

下の表をコピーして、Excelのシートに貼り付けるとそのまま試せます。
| 日付 | 商品 | 売上 | 月 |
|---|---|---|---|
| 2025/12/28 | ノートPC | 120000 | |
| 2026/1/8 | モニター | 45000 | |
| 2026/1/15 | キーボード | 12000 | |
| 2026/1/22 | マウス | 5000 | |
| 2026/2/5 | ノートPC | 130000 | |
| 2026/2/12 | プリンタ | 38000 | |
| 2026/2/19 | モニター | 42000 | |
| 2026/3/4 | キーボード | 15000 | |
| 2026/3/11 | ノートPC | 125000 | |
| 2026/3/18 | マウス | 6000 | |
| 2026/12/5 | モニター | 48000 | |
| 2026/12/19 | プリンタ | 40000 |
※ 数式で求める列は空にしています。すでに値が入っている列はそのまま残して試せます。
STEP2. MONTH関数で「月」の列を作る
まずは集計の土台になる「月」の列を、D列に作ります。
D2セルを選び、次の数式を入力します。
=MONTH(A2)
MONTH関数は、日付から月の数字だけを取り出す関数です。
A2セルの「2025/12/28」なら、12が返ります。
入力したら、D2セルを下のD13セルまでコピーします。
実際の入力画面がこちらです。

STEP3. 「月」の列ができたか確認する
D列に月の数字が入りました。
12月・1月・2月・3月が、それぞれ12・1・2・3として並んでいます。
見た目は日付のままでも、MONTH関数を通すと月だけを取り出せるのがポイントです。
これで「何月の売上か」を数式で判定できるようになりました。

STEP4. SUMPRODUCT関数で月別に合計する
次に、月ごとの合計を出すまとめ表をF列から作りましょう。
F1セルに「月」、G1セルに「売上合計」と入力します。
F2セルからF5セルに、集計したい月(1・2・3・12)を入力します。
続いてG2セルに、次のSUMPRODUCT関数を入力します。
=SUMPRODUCT(($D$2:$D$13=F2)*$C$2:$C$13)
この数式は「D列がF2の月と一致する行だけ、C列の売上を足す」という意味です。
1月は62,000、2月は210,000と、月ごとの合計が出ました。
G5セルまでコピーすれば、すべての月の合計がそろいます。

数式はどのセルに入れる?
セルを選んで、数式バーに直接入力するだけです。
ここでは12月の行(G5セル)を選んでいます。
条件の範囲を $D$2:$D$13 と固定しているので、G2セルからG5セルまでコピーしても参照がずれません。
実際の入力画面がこちらです。
入力中は引数のヒントが表示されるので、順番を確認しながら進められます。

STEP5. COUNTIFS関数で件数も出す
合計だけでなく「その月に何件売れたか」も知りたいときは、COUNTIFS関数を使います。
H1セルに「件数」と入力し、H2セルに次の数式を入力しましょう。
=COUNTIFS($D$2:$D$13,F2)
COUNTIFS関数は、条件に合うセルの個数を数える関数です。
1月・2月・3月はそれぞれ3件、12月も3件と出ました。
合計と件数を並べておくと、1件あたりの平均を出したいときにも役立ちます。

STEP6. 年をまたぐデータの注意
ここで1つ、大切な注意点があります。
MONTH関数は「月」だけを返すので、2025年12月も2026年12月も同じ「12」になります。
そのため、さきほどの12月の合計には2年分の売上が合わさってしまっています。
年ごとに分けたいときは、YEAR関数を組み合わせましょう。
=SUMPRODUCT((YEAR($A$2:$A$13)=2026)*($D$2:$D$13=12)*$C$2:$C$13)
すると2026年12月は88,000、2025年12月は120,000と、年単位で分けて集計できます。
年をまたぐデータを扱うときは、このひと手間を思い出してくださいね。

STEP7. VBAで月別集計を一括で出す
毎月同じ集計を繰り返すなら、VBAでまとめて出すのがいちばんラクです。
Alt+F11でVBAエディターを開き、標準モジュールに次のコードを貼り付けます。
Sub MonthlyTotal()
Dim m As Long
For m = 1 To 12
Cells(m + 1, 6).Value = m
Cells(m + 1, 7).Formula = "=SUMPRODUCT(($D$2:$D$13=$F" & m + 1 & ")*$C$2:$C$13)"
Cells(m + 1, 8).Formula = "=COUNTIFS($D$2:$D$13,$F" & m + 1 & ")"
Next m
End Sub
実行すると、1月から12月までの合計と件数が一瞬で入力されます。
データがない月は0になりますが、月別の一覧が自動でそろうので便利です。
月を入れているF列を基準にしているので、F列の月を変えるだけで集計し直せます。
ボタンに登録しておけば、クリック1つで毎月の集計が終わりますよ。
3つの方法の比較
月別集計のやり方を3つにまとめました。
作りたいものに合わせて選ぶと迷いません。
| 方法 | 向いている場面 | 注意点 |
|---|---|---|
| SUMPRODUCT | 月の列を作って数式で集計したいとき | 条件の範囲を $D$2:$D$13 と絶対参照で固定する |
| SUMIF/SUMIFS | 条件が1〜2つでシンプルに済むとき | 条件を増やすほど式が長くなる |
| ピボットテーブル | 手早く集計表やグラフを作りたいとき | 元データを更新したら「更新」が必要 |
件数を数えるCOUNTIFSも、月の列があれば同じように使えます。
数式で自動追従させたいならMONTH+SUMPRODUCT、
手早く見た目を整えたいならピボットテーブルがおすすめです。
元データが毎月増えるなら、MONTH列の数式をあらかじめ長めに入れておくと、追加した行も自動で集計できます。
うまくいかないときの対処法(トラブルシュート)
実際に試すと、思ったように動かないこともあるかもしれません。
よくあるつまずきと対処法をまとめました。
| 症状 | 原因 | 対処 |
|---|---|---|
| 合計が0になる | 「月」の列が数値ではなく文字列になっている | =MONTH(A2) で数値にし、表示形式を確認する |
| MONTHが#VALUE!になる | 日付が文字列として入力されている | A列を選び区切り位置で日付に変換する/=VALUE(A2) で数値化する |
| 合計が実際より大きい | 年をまたぐ同じ月が合算されている | YEAR関数と組み合わせて年ごとに分ける |
| コピーすると合計がズレる | 条件の範囲が相対参照になっている | $D$2:$D$13 のように絶対参照で固定する |
| データがない月が0で出る | すべての月に数式が入っている | そのままでもOK/消したいときは =IF(合計=0,””,合計) にする |
関数の説明
今回使う3つの関数の概要です。
どれも集計の基本になる関数なので、違いを押さえておきましょう。
MONTH関数(マンス)
| 書式 | =MONTH(シリアル値) |
|---|---|
| できること | 日付から月を表す1〜12の数値を返します。 |
| 戻り値 | 1〜12の数値 |
| こんなときに | 日付を月ごとに分類したいとき。 |
| 注意 | 月だけを返すため年は区別できません。年をまたぐときはYEAR関数と組み合わせます。 |
=MONTH(A2)
SUMPRODUCT関数(サムプロダクト)
| 書式 | =SUMPRODUCT(配列1, [配列2], …) |
|---|---|
| できること | 対応する要素どうしを掛けて、その合計を返します。条件式(TRUE/FALSE)を掛けると、条件に合う行だけを合計できます。 |
| 戻り値 | 合計値(数値) |
| こんなときに | 月や年など、複数の条件で合計したいとき。配列数式を使わずに済みます。 |
| 注意 | 条件の範囲は絶対参照で固定します。範囲の行数と売上の行数をそろえてください。 |
=SUMPRODUCT(($D$2:$D$13=F2)*$C$2:$C$13)
COUNTIFS関数(カウントイフス)
| 書式 | =COUNTIFS(範囲1, 条件1, [範囲2, 条件2], …) |
|---|---|
| できること | すべての条件に合うセルの個数を数えます。 |
| 戻り値 | 件数(数値) |
| こんなときに | 月ごとの件数など、条件に合うデータの数を数えたいとき。 |
| 注意 | 範囲と条件はセットで指定します。条件を2つ以上にするときは範囲を続けて書きます。 |
=COUNTIFS($D$2:$D$13,F2)
完成
月ごとの売上合計と件数が、一覧できれいにそろいました。
思ったとおりに動きましたか?
MONTH列を作ってしまえば、あとはSUMPRODUCTで月を切り替えるだけなので、毎月の集計がぐっとラクになります。
年をまたぐデータでは、YEARを組み合わせるのを忘れないようにしてくださいね。

さいごに
いかがでしょうか。
今回は、
についてまとめました。
まずは今回のサンプル表で、ぜひ一度試してみてください。
MONTHで月の列を作り、SUMPRODUCTで条件つき合計、COUNTIFSで件数と覚えておくと、月別の集計表が数式だけで作れますよ。
また、他にも便利なExcelの時短テクニックがありますので、よろしければご参照頂ければと思います。










コメントを残す