Excelで月別に集計する方法!MONTH関数とSUMPRODUCTで月ごとの売上を合計する手順

Excelで月別に集計する方法!
Excelで月別に売上を集計したいときはないでしょうか。

けど、そんな中で悩むことは、

・月ごとの合計をどう出せばいいかわからない
・MONTH関数だけでは同じ月の数字がうまく分けられない
・毎月手で集計するのが手間で、ミスが起きる

ですよね。

今回はそんなお悩みを解決する

・Excelで月別に集計する方法(MONTH関数とSUMPRODUCT関数)

についてまとめます!

完成イメージ

月ごとの売上を集計したいときは、日付から「月」を取り出して条件に使うのがポイントです。
今回は
・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セルまでコピーします。
実際の入力画面がこちらです。
MONTH関数の入力画面

STEP3. 「月」の列ができたか確認する

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

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セルまでコピーすれば、すべての月の合計がそろいます。
SUMPRODUCTで月別合計を出したまとめ表

数式はどのセルに入れる?

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

STEP5. COUNTIFS関数で件数も出す

合計だけでなく「その月に何件売れたか」も知りたいときは、COUNTIFS関数を使います。
H1セルに「件数」と入力し、H2セルに次の数式を入力しましょう。

=COUNTIFS($D$2:$D$13,F2)

COUNTIFS関数は、条件に合うセルの個数を数える関数です。
1月・2月・3月はそれぞれ3件、12月も3件と出ました。
合計と件数を並べておくと、1件あたりの平均を出したいときにも役立ちます。
COUNTIFSで件数を出したまとめ表

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と、年単位で分けて集計できます。
年をまたぐデータを扱うときは、このひと手間を思い出してくださいね。
年をまたぐ12月を年ごとに分けた表

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になりますが、月別の一覧が自動でそろうので便利です。

タカヒロ

タカヒロ
「Cells(m + 1, 7)」の 7 はG列という意味です。
月を入れているF列を基準にしているので、F列の月を変えるだけで集計し直せます。
ボタンに登録しておけば、クリック1つで毎月の集計が終わりますよ。

3つの方法の比較

月別集計のやり方を3つにまとめました。
作りたいものに合わせて選ぶと迷いません。

方法 向いている場面 注意点
SUMPRODUCT 月の列を作って数式で集計したいとき 条件の範囲を $D$2:$D$13 と絶対参照で固定する
SUMIF/SUMIFS 条件が1〜2つでシンプルに済むとき 条件を増やすほど式が長くなる
ピボットテーブル 手早く集計表やグラフを作りたいとき 元データを更新したら「更新」が必要

件数を数えるCOUNTIFSも、月の列があれば同じように使えます。

POINT

数式で自動追従させたいなら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を組み合わせるのを忘れないようにしてくださいね。
月別集計が完成した表

さいごに

いかがでしょうか。

今回は、

・Excelで月別に集計する方法(MONTH関数とSUMPRODUCT関数)

についてまとめました。

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



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。






コメントを残す

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

CAPTCHA ImageChange Image