Excel関数 逆引き集 | 累積合計 → SUM + 行参照

Excel
スポンサーリンク

概要

累積合計は「先頭行から現在行までの合計」を行ごとに計算していく集計です。定番の作り方は、SUMに“開始セルを絶対参照”+“現在行までを相対参照”で指定する方法です。これなら下方向にコピーするだけで、各行の累積値が自動で更新されます。


基本の使い方(SUM+行参照)

  • 書式の考え方:
    • 説明: 先頭の B2 を「絶対参照」で固定($B$2)、終点の B2 は「相対参照」でコピーに応じて B3、B4…と伸びる。
=SUM($B$2:B2)

手順(列Bの金額を列Cに累積):

1. C2に入力:

=SUM($B$2:B2)

2. C2を下へコピー: C3は =SUM($B$2:B3)、C4は =SUM($B$2:B4)…となり、各行の累積が完成。

  • 別列の開始位置が違う場合:
=SUM($D$5:D5)  // D5が開始行のとき

具体例

  • 例1: 売上の累積合計(シンプル) 列B=売上、列C=累積
    • ポイント: 先頭セル固定+終点は現在行で伸びる。
C2: =SUM($B$2:B2)
C3以降: 下へコピー
  • 例2: 日付順に累積(開始〜現在行まで) 列A=日付、列B=金額、列C=累積
    • ポイント: 並び順を“日付昇順”にしておくと、時系列の累積になります。
C2: =SUM($B$2:B2)
  • 例3: テーブル(構造化参照)で累積 テーブル名「売上」、列「金額」「累積」 売上[累積]
    • ポイント: 先頭行から“その行(@)の金額セル”までをSUM。行追加にも自動対応。
売上[累積] 行の数式:
=SUM(INDEX(売上[金額],1):[@金額])
  • 例4: カテゴリごとに累積 列A=カテゴリ、列B=金額、列C=カテゴリ別累積
    • ポイント: 「現在行までの範囲」に絞ったSUMIF。カテゴリが変わるたびに累積が個別に進む。
C2: =SUMIF($A$2:A2, A2, $B$2:B2)

応用テンプレート

  • 行の並びに依存しない“期間累積”(日付で条件) 列A=日付、列B=金額、列C=累積(A2の“その日まで”)
    • 説明: 並べ替えても「A2の日付以下」の合計なので、結果が安定。
=SUMIFS($B$2:$B$200, $A$2:$A$200, "<=" & A2)
  • 月単位の累積(同じ月かつ当日まで) 列A=日付、列B=金額、列C=累積
    • 説明: 当月の1日〜当日までを合計。EOMONTHで月初・月末を作る。
=SUMIFS($B$2:$B$200, $A$2:$A$200, ">=" & EOMONTH(A2, -1)+1,
                        $A$2:$A$200, "<=" & A2)
  • プロジェクト別+時系列の累積 列A=プロジェクト、列B=日付、列C=金額、列D=累積
    • 説明: 同じプロジェクトで“B2の日付まで”の合計。
=SUMIFS($C$2:$C$200, $A$2:$A$200, A2, $B$2:$B$200, "<=" & B2)
  • ヘッダー行が異なる位置の汎用形
=SUM(INDEX(対象列, 開始行):INDEX(対象列, ROW()))

例: 列Bの開始が行5なら

=SUM(INDEX($B:$B,5):B5)

作業効率のコツ

  • 絶対参照を必ず固定:
    • 例: $B$2 のように「$」で列と行を固定。コピー時のズレ防止。
  • オートフィルで一気に展開:
    • 説明: 1行目の累積式を作ったら、データ最終行までドラッグでコピー。
  • テーブル化で自動拡張:
    • 説明: テーブルにしておくと、式が新行にも自動適用され、範囲のミスが減る。
  • 意図した並び順にする:
    • 説明: 累積は行順に依存する作り方が多い。時系列累積なら昇順ソートしてから式設定。

よくあるつまずきと対策

  • 並べ替えで累積が変わってしまう
    • 原因: =SUM($B$2:B2) は「行順」に依存。
    • 対策: 並びに左右されない累積は SUMIFSで日付やIDを条件にする(応用テンプレート参照)。
  • 開始行がずれて誤計算
    • 対策: 先頭セルの絶対参照を確認。見出しが1行なら開始は通常“2”。
  • 空白や文字列混在で計算漏れ
    • 対策: 数値列に統一。必要なら別列で =VALUE()、または入力規則で制御。
  • テーブルで先頭行参照が分からない
    • 対策: INDEX(テーブル[列],1) を使うと確実に先頭を指せる。

例題(練習)

  • 問題1: 列B=売上。列Cに“行ごとの累積合計”を作ってください。
    • 解答例:
=SUM($B$2:B2)
  • 問題2: 列A=カテゴリ、列B=金額。列Cに“カテゴリ別の累積合計”を作ってください。
    • 解答例:
=SUMIF($A$2:A2, A2, $B$2:B2)
  • 問題3: 列A=日付、列B=金額。列Cに“同日までの累積(並べ替えに強い)”を作ってください。
    • 解答例:
=SUMIFS($B$2:$B$200, $A$2:$A$200, "<=" & A2)
  • 問題4: テーブル「売上」で、列「金額」の累積を列「累積」に作ってください。
    • 解答例:
=SUM(INDEX(売上[金額],1):[@金額])
  • 問題5: 列A=プロジェクト、列B=日付、列C=金額。列Dに“プロジェクト別+当日までの累積”を作ってください。
    • 解答例:
=SUMIFS($C$2:$C$200, $A$2:$A$200, A2, $B$2:$B$200, "<=" & B2)

まとめ

  • 定番形: =SUM($開始セル$:現在行セル) で開始を絶対参照、終点を相対参照に
  • 並び依存を避けるなら: 条件付きの SUMIFS で「日付やID ≤ 現在行」を合計
  • テーブルが便利: INDEX(テーブル[列],1):[@列] で自動拡張・可読性アップ
  • 設計の肝: 開始位置の固定、並び順の明確化、データ型の統一

タイトルとURLをコピーしました