日付の列から月別に合計を出す方法(SUMIFSとSUMPRODUCT、年をまたぐ注意点)【LibreOfficeで計算して確認】
日付と金額を1行ずつ並べた表から、「2026年4月の合計はいくら?」を出したい場面は多いはずです。この記事では、日付の列から指定した年月の合計を出す式を2通り紹介し、「月」だけで集計すると別の年が混ざるという落とし穴を、実際に計算して確かめた結果で示します。
出典: 筆者がLibreOfficeで計算して確認(検証スクリプト: site/verify/month_sum.py)。外部サイトの説明は参照していません。Excelでは未確認です。本番の表に使う前に、数行で結果を確かめてください。
先に結論
- 表はA列が日付、B列が金額です(2行目〜)。集計したい年をD列、月をE列に入れます。
- おすすめはSUMIFS:
=SUMIFS(B2:B61,A2:A61,">="&DATE(D1,E1,1),A2:A61,"<"&EDATE(DATE(D1,E1,1),1)) - SUMPRODUCTでも同じ結果になります:
=SUMPRODUCT((YEAR(A2:A61)=D1)*(MONTH(A2:A61)=E1)*B2:B61) - 月だけを条件にすると(年を見ないと)、別の年の同じ月が混ざります。 複数年のデータでは必ず年も条件に入れます。
式の意味
SUMIFSの式は、「日付が当月1日以上、かつ翌月1日未満」の行だけを合計しています。DATE(D1,E1,1) は年月から1日の日付を作り、EDATE(…,1) はその1か月後の日付です。月末の日数(28日か31日か)を気にしなくてよいのが利点です。
SUMPRODUCTの式は、各行の年と月を取り出して一致する行の金額を足しています。どちらも結果は同じでしたが、SUMIFSのほうが式が短く、読みやすいと感じます。
実際に計算した結果
2025〜2026年の日付をランダムに60行並べた表と、境界の日付を入れた8行の表で、指定した年月の合計を3種類の式で出しました。
- 式1: SUMIFS(日付範囲)
- 式2: SUMPRODUCT(年と月)
- 式3: SUMPRODUCT(月だけ。年を見ない)
境界の表は次のとおりです。
| 日付 | 金額 |
|---|---|
| 2026-04-01 | 100 |
| 2026-04-30 | 200 |
| 2026-05-01 | 400 |
| 2026-03-31 | 800 |
| 2024-02-29 | 1,600 |
| 2025-02-28 | 3,200 |
| 2026-12-31 | 6,400 |
| 2027-01-01 | 12,800 |
結果の一部です。
| 集計する年月 | 式1・式2(年も見る) | 式3(月だけ) |
|---|---|---|
| 2026年4月 | 300 | 300 |
| 2026年5月 | 400 | 400 |
| 2026年1月 | 0 | 12,800 |
| 2026年2月 | 0 | 4,800 |
| 2025年2月 | 3,200 | 4,800 |
| 2024年2月 | 1,600 | 4,800 |
2026年4月は、月初の4/1(100)と月末の4/30(200)の両方が入り、合計300で正しく出ました。翌日の5/1(400)は4月に混ざりません。
一方、式3(月だけ)では、2026年1月が「0」ではなく12,800になりました。 これは2027年1月1日の金額です。2月も、2024年のうるう日(2/29)と2025年(2/28)の金額が合算され、どの年を指定しても4,800になりました。
2026年1月〜12月と2025年2月・2024年2月の計14か月分で、式1・式2は期待値と全件一致しました。60行の表と合わせた28件の集計すべてで不一致0件です。月だけで集計した場合に年の違いで結果が変わった月は、28件中16件ありました。
つまずきやすい点
- 年をまたぐデータでは、月だけの条件は使わない。 1年分しか入れない表なら問題になりませんが、翌年も同じ表に続けると、突然合計が合わなくなります。
- 日付の列が文字列だと正しく集計できないことがあります。 この記事では、日付として入力した値だけを検証しています。文字列の場合の動きは確認していません。
- 範囲を固定すると、追加した行が集計に入りません。 上の式は2行目〜61行目の例です。行を足す予定なら、範囲を余裕をもって広めに取っておきます。
- 集計したい年月は、式に直接書かず、セル(D1・E1)から読むと、年月を変えるだけで別の月も出せます。
注意点: この式ができないこと
- 会計年度(4月始まりなど)での集計は、この記事では扱いません。年月を2つのセルで指定する形です。
- 費目ごとの月別集計は、条件を足す必要があります(SUMIFSに「費目」の条件を足せば可能ですが、この記事では検証していません)。
- 家計の良し悪しや、節約できる金額の判断はしません。
家計簿のひな形が必要なら
この記事の式は、自分で作った表にそのまま使えます。1か月分の収支を費目別に集計するひな形を探しているなら、運営者が作った月間家計簿(Excelテンプレート・400円)があります。A4で印刷できます。ただし、複数の月をまたいだ通年の集計はできません(1か月ごとに使う形です)。Excelの確認はWindowsデスクトップ版16のみです。この記事の方法で足りる場合は、買う必要はありません。
前月と比べた増減の割合を知りたいときは、無料の割合・増減率の計算ツールも使えます(入力は外部に送信されません)。月ごとの繰越の式は、前月繰越を翌月に引き継ぐ方法で計算して確認しています。
まとめ
- 指定した年月の合計は、SUMIFSで「当月1日以上、翌月1日未満」を条件にする
- SUMPRODUCT(YEAR・MONTH)でも同じ結果になる
- 月だけで集計すると、別の年の同じ月が混ざる(今回の確認では28件中16件で結果が変わった)
- 式はいずれもLibreOfficeで計算した結果。Excelでは未確認のため、本番の表に使う前に数行で確かめる
参考にした情報
- 出典: 筆者がLibreOfficeで計算して確認(検証スクリプト: site/verify/month_sum.py)