累計を求める数式あれこれ
累計を求める数式は書き方がいくつもあります。
これが定番、これが最適解の数式・・・とはなかなか言えません。
どれも一長一短なところがあります。
数式の目的は簡単ですので、どれを使っても良いと思います。
使用場所と好みで使い分けてください。
ページ内目次
例題サンプル

日付 | 数量 |
2024/1/1 | 1 |
2024/1/2 | 2 |
2024/1/3 | 3 |
2024/1/4 | 4 |
2024/1/5 | 5 |
2024/1/6 | 6 |
2024/1/7 | 7 |
2024/1/8 | 8 |
2024/1/9 | 9 |
2024/1/10 | 10 |
上記では数量として連番を入れていますが、結果の検算が簡単なように1~10の連番を入れて数式の結果を確認しました。
この下では、この10通りの数式を掲載解説します。
SUM関数:順に足していく

C3=C2+B3
C4以下はC3コピー
次のC3以降では、1つ上の行までの累計に当該行の値を加算します。
SUM関数:絶対参照と相対参照で範囲をずらす

C3以下はC2をコピー
これは絶対参照なので、コピーしてもずれません。
B2
こちらは相対参照なので、コピーすることでずれていきます。

「相対参照」「絶対参照」
SUM関数:OFFSET関数で範囲をずらす

C3も全く同じ数式です。
OFFSET関数(行数と列数シフトした位置のセル範囲)
SUM関数:INDIRECT関数で範囲をずらす

C3以下はC2をコピー
INDIRECT関数(参照文字列で間接的にセルを指定)
SUMIFS関数:当該行より前の行を条件指定

C3以下はC2をコピー
条件が1つなのでSUMIF関数でも可。
"<="&A2
SUMIF関数、SUMIFS関数の使い方の基本になりますので、しっかり覚えてください。
ただし、この事例でSUMIFS関数が使えるのは、
キー列(ここではA列)で対象行を特定できる場合に限られます。
SUM+IF関数:SUM+IFの配列数式(CSE)で

C3以下はC2をコピー
IF関数で条件を満たす場合のみB列の値を返すようにして、その結果をSUM関数で合計しています。
この数式は配列数式(CSE)になります。
スピル以前のバージョンでは数式を入力する時に、
Ctrl + Shift + Enterで数式を入れる必要があります。
スピルについて
この数式を少し変更することで、キー列(ここではA列)がなくても行番号だけて累計することができます。
=SUM(IF(ROW(B:B)<=ROW(B2),B:B,0))
SUMPRODUCT関数:当該行より前の行を条件指定

I3以下はI2をコピー
この数式で、条件を満たす場合は1、満たさない場合は0の配列を返しています。
例えばC6の数式は、
($A$2:$A$11<=A6)*1
集計対象の行には1、対象外の行には0、となる配列が作成されます。


この数式を少し変更することで、キー列(ここではA列)がなくても行番号だけて累計することができます。
=SUMPRODUCT($B$2:$B$11,(ROW($B$2:$B$11)<=ROW(B2))*1)
FILTER関数:当該行より前の行を条件指定

C3以下はC2をコピー
例えばC6の数式では、
$A$2:$A$11<=A6


この数式を少し変更することで、キー列(ここではA列)がなくても行番号だけて累計することができます。
=SUM(FILTER($B$2:$B$11,ROW($B$2:$B$11)<=ROW(B2)))
SUMIFS関数:スピル

スピルしてC10まで出力されます。
これらの関数の引数「条件」にセル範囲や配列を指定すると数式はスピルします。
これはスピル数式としては基本的な使い方になります。
スピルについて
SCAN関数:LAMBDA関数内でSUM

スピルしてC10まで出力されます。
LAMBDA以降の新関数について
現在はまだInside版でしか使えませんが、イータ縮小ラムダを使う事で数式が断然簡単になります。
イータ縮小ラムダ(eta reduced lambda)

スピルしてC10まで出力されます。
同じテーマ「エクセル関数応用」の記事
論理式とは条件式とは(IF関数,AND関数,OR関数)
先頭の数値、最後の数値を取り出す
最後の空白(や指定文字)以降の文字を取り出す
SUMIFの間違いによるパフォーマンスの低下について
数値範囲で表検索するVLOOKUP近似一致
エクセルの日付と時刻のまとめ
連続数値部分を取り出し記号で連結
指数近似/対数近似/累乗近似(掲載順位とCTR)
ジャンプ・セル選択の応用(空欄を埋める、1行置きに挿入)
累計を求める数式あれこれ
QRコード、バーコード作成の覚え書き
新着記事NEW ・・・新着記事一覧を見る
第5章:AI×VBAでつまづかない!トラブルシューティングとAIとの付き合い方
|生成AI活用研究(2025-05-20)
第4章:【事例で学ぶ】AIとVBAでExcel作業を劇的に効率化する!
|生成AI活用研究(2025-05-20)
第3章:AIを「自分だけのVBA先生」にする!質問・相談の超実践テクニック|生成AI活用研究(2025-05-19)
第2章 VBAって怖くない!Excelを「言葉で動かす」(超入門)|生成AI活用研究(2025-05-18)
第1章:AIって一体何?あなたのExcel作業をどう変える?(AI超基本)|生成AI活用研究(2025-05-18)
AI時代のExcel革命:AI×VBAで“書かない自動化”超入門|生成AI活用研究(2025-05-17)
Geminiと100本ノック 23本目:シート構成の一致確認|生成AI活用研究(5月16日)
AIが問う出版の未来は淘汰か進化か:AIと書籍の共存の道とは|生成AI活用研究(2025-05-16)
Geminiと100本ノック 22本目:FizzBuzz発展問題|生成AI活用研究(5月15日)
すぐに使える!生成AI プロンプト作成 実践ガイド|生成AI活用研究(2025-05-15)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.繰り返し処理(For Next)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.ひらがな⇔カタカナの変換|エクセル基本操作
6.RangeとCellsの使い方|VBA入門
7.メッセージボックス(MsgBox関数)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.FILTER関数(範囲をフィルター処理)|エクセル入門
10.条件分岐(Select Case)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。