概要
年次集計は、日別・月別などの明細データから「特定の年だけを合計する」処理です。
Excel では、条件付き合計の SUMIFS を使うことで、
「この年のデータだけを合計する」という集計を、数式だけで正確に行えます。
ここでは、初心者でも迷わないように、
日付の明細表 → 年別の集計表 を作る流れを、丁寧に解説します。
SUMIFS の基本
SUMIFS の書式
=SUMIFS(合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, …)
意味としては、
- 合計範囲の中から
- 条件範囲が条件を満たす行だけを
- 合計する
という動きです。
年次集計では、
「日付がその年の範囲に入っている行だけを合計する」
という条件を SUMIFS で表現します。
年次集計の基本ロジック
年の範囲で絞り込む
年次集計の定番は、
- 年の初日(例:2025/1/1)以上
- 翌年の初日(例:2026/1/1)未満
という条件で絞る方法です。
たとえば「2025 年の売上」を集計したいなら、
- 日付 >= 2025/1/1
- 日付 < 2026/1/1
の行だけを合計すればよい、という考え方です。
この「翌年の初日」は EDATE を使うと簡単に求められます。
コード例:SUMIFS で年次集計
データの前提
明細表(A:B 列)
A 列:日付
B 列:売上金額
集計表(D:E 列)
D 列:年の初日(例:2025/1/1)
E 列:その年の売上合計
年次集計の式(E2)
D2 に「2025/1/1」が入っているとします。
E2 に次の式を書きます。
=SUMIFS($B:$B, $A:$A, ">="&$D2, $A:$A, "<"&EDATE($D2,12))
意味は次の通りです。
- 合計範囲:売上(B 列)
- 条件1:日付がその年の初日以上
- 条件2:日付が翌年の初日より前(EDATE で 12 ヶ月後を取得)
これで「D2 の年に属するデータだけを合計」できます。
年を変えるだけで自動集計
D3 に「2026/1/1」、D4 に「2027/1/1」…と入れておけば、
E2 の式を下にコピーするだけで、各年の集計が自動で完成します。
YEAR 関数を使う方法(年列を作るパターン)
年列を追加して集計する
明細表に「年」列を追加しておくと、SUMIFS がさらに読みやすくなります。
明細表
A 列:日付
B 列:売上
C 列:年(=YEAR(A2) を下にコピー)
集計表
E 列:年
F 列:年次売上合計
F2 に次の式を書きます。
=SUMIFS($B:$B, $C:$C, $E2)
これで「年=E2 の行だけを合計」できます。
年次集計の設計のコツ
日付範囲方式と YEAR 列方式の違い
どちらも正解ですが、特徴は次の通りです。
日付範囲方式(>=年初日、<翌年初日)
- 列が増えない
- EDATE を使う
- 日付の扱いに慣れている人向け
YEAR 列方式(YEAR 関数で年を抽出)
- 条件が直感的
- ピボットテーブル的な集計にも応用しやすい
- 列が 1 つ増えるが読みやすい
シートの構造やメンテナンス性で選ぶとよいです。
例題
問題1
A 列に日付、B 列に売上が入っています。
D2 に「2025/1/1」が入っているとき、
E2 に「2025 年の売上合計」を求める式を、SUMIFS と EDATE を使って書いてください。
問題2
前問の E2 の式を E3 にコピーすると、E3 は「2026 年の売上合計」になります。
なぜコピーするだけで正しく動くのか、D 列との関係を説明してください。
問題3
明細表に C 列として「年」列(=YEAR(A2))を追加しました。
集計表の E2 に「2025」、F2 に「2025 年の売上合計」を出したいとき、
F2 に書くべき SUMIFS の式を答えてください。
問題4
次の 2 つの年次集計方法があります。
- 日付範囲で絞る方法
- YEAR 列で絞る方法
この 2 つの方法のメリット・デメリットを、
「式の読みやすさ」「列の数」「拡張性」という観点から説明してください。
問題5
日付セルの表示形式を「yyyy」だけにして、見た目の年で集計しようとすると問題が起こります。
その理由を、「表示形式」と「実際の値(シリアル値)」の違いを踏まえて説明してください。
必要であれば、月次集計・週次集計・四半期集計など、SUMIFS を応用した別パターンも作れます。
続けて知りたい内容があれば、どんどん聞いてください。
