エクセル関数応用
累計を求める数式あれこれ

Excel関数の解説、関数サンプルと高等テクニック
公開日:2024-01-22 最終更新日:2024-01-22

累計を求める数式あれこれ


累計を求める数式は書き方がいくつもあります。
これが定番、これが最適解の数式・・・とはなかなか言えません。
どれも一長一短なところがあります。


ここでは、累計を求める数式の代表的なところを何通りか紹介していきます。
数式の目的は簡単ですので、どれを使っても良いと思います。
使用場所と好みで使い分けてください。


例題サンプル

エクセル Excel 累計を求める数式あれこれ

日付 数量
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関数:順に足していく

エクセル Excel 累計を求める数式あれこれ

C2=B2
C3=C2+B3
C4以下はC3コピー

最初のC2では、=で同じ値をそのまま入れます。
次のC3以降では、1つ上の行までの累計に当該行の値を加算します。


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

エクセル Excel 累計を求める数式あれこれ

C2=SUM($B$2:B2)
C3以下はC2をコピー

$B$2
これは絶対参照なので、コピーしてもずれません。
B2
こちらは相対参照なので、コピーすることでずれていきます。

エクセル Excel 累計を求める数式あれこれ

「相対参照」「絶対参照」

絶対参照と相対参照
・相対参照 ・絶対参照 ・複合参照 ・複合参照の考え方 ・$(ドル記号)を付ける操作方法 ・絶対参照と相対参照のまとめ
「絶対参照」「相対参照」とは
・0からのエクセル入門 24日目 ・0からのエクセル入門 25日目 ・0からのエクセル入門 26日目 ・0からのエクセル入門 27日目 ・0からのエクセル入門 28日目 ・0からのエクセル入門 29日目


SUM関数:OFFSET関数で範囲をずらす

エクセル Excel 累計を求める数式あれこれ

C2=SUM(OFFSET($B$2,0,0,ROW()-1))
C3も全く同じ数式です。

OFFSET関数の引数「高さ」にROW関数で「行番号-1」を入れることで、行位置に応じた範囲になるようにしています。
OFFSET関数(行数と列数シフトした位置のセル範囲)
・OFFSET関数の書式 ・OFFSET関数の解説 ・OFFSET関数の使用例 ・OFFSET関数の応用例
ROW関数(セル参照の行番号)
・ROW関数の書式 ・ROW関数の使用例 ・ROW関数の応用例


SUM関数:INDIRECT関数で範囲をずらす

エクセル Excel 累計を求める数式あれこれ

C2=SUM(INDIRECT("B2:B"&ROW()))
C3以下はC2をコピー

ROW関数で行番号に応じたセル番地の文字列を作り出し、それをINDIRECT関数でセル範囲に変換しています。
INDIRECT関数(参照文字列で間接的にセルを指定)
INDIRECT関数は、指定される文字列への参照を返します。参照文字列によって指定されるセルに入力されている文字列を介して、間接的なセルの指定を行います。参照文字列で指定されるセル参照を返しますが、セル参照はすぐに計算され、結果としてセルの内容が表示されます。
ROW関数(セル参照の行番号)
・ROW関数の書式 ・ROW関数の使用例 ・ROW関数の応用例


SUMIFS関数:当該行より前の行を条件指定

エクセル Excel 累計を求める数式あれこれ

C2=SUMIFS(B:B,A:A,"<="&A2)
C3以下はC2をコピー
条件が1つなのでSUMIF関数でも可。

条件指定を文字列と&で指定する部分が少し難しく間違えやすいと思います。
"<="&A2
SUMIF関数、SUMIFS関数の使い方の基本になりますので、しっかり覚えてください。

SUMIF関数(検索条件に一致するセルの合計)
・SUMIF関数の書式 ・SUMIF関数の使用例 ・ワイルドカード ・SUMIF関数の応用例
SUMIFS関数、COUNTIFS関数.AVERAGEIFS関数(複数条件)
SUMIFS関数は、SUMIF関数の条件が複数指定できるようになったものです。COUNTIFS関数は、COUNTIF関数の条件が複数指定できるようになったものです。・COUNTIF関数の書式・COUNTIF関数の使用例・COUNTIF関数でワイルドカードを使用・COUNTIF関数の応用例 AVERAGEIFS関数は、

ただし、この事例でSUMIFS関数が使えるのは、
キー列(ここではA列)で対象行を特定できる場合に限られます。


SUM+IF関数:SUM+IFの配列数式(CSE)で

エクセル Excel 累計を求める数式あれこれ

C2=SUM(IF(A:A<=A2,B:B,0))
C3以下はC2をコピー

やっていることはSUMIFS関数と同じことをやっています。
IF関数で条件を満たす場合のみB列の値を返すようにして、その結果をSUM関数で合計しています。
この数式は配列数式(CSE)になります。
スピル以前のバージョンでは数式を入力する時に、
Ctrl + Shift + Enterで数式を入れる必要があります。
スピルについて
・スピルとは ・スピルの数式例 ・ゴースト ・スピル範囲での独特な挙動について ・スピルのエラー表示 ・スピル範囲演算子 ・暗黙的なインターセクション演算子 ・従来のスピルしないエクセルとの互換性についての注意点 ・スピル関連記事

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


SUMPRODUCT関数:当該行より前の行を条件指定

エクセル Excel 累計を求める数式あれこれ

I2=SUMPRODUCT($B$2:$B$11,($A$2:$A$11<=A2)*1)
I3以下はI2をコピー

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

エクセル Excel 累計を求める数式あれこれ

これをSUMPRODUCT関数で集計します。

エクセル Excel 累計を求める数式あれこれ

SUMPRODUCT関数(配列の対応する要素の積の合計)
引数として指定した配列の対応する要素間の積をまず計算し、さらにその和を返します。SUMPRODUCT関数の書式 SUMPRODUCT(配列1,[配列2],[配列3],...) 配列1 計算の対象となる要素を含む最初の配列引数を指定します。配列2,配列3,... 省略可能です。

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


FILTER関数:当該行より前の行を条件指定

エクセル Excel 累計を求める数式あれこれ

C2=SUM(FILTER($B$2:$B$11,$A$2:$A$11<=A2))
C3以下はC2をコピー

FILTER関数の引数「含む」に、当該行より前の行なら「TRUE」、後ろの行なら「FALSE」になる配列を指定しています。
例えばC6の数式では、
$A$2:$A$11<=A6

エクセル Excel 累計を求める数式あれこれ

この配列をFILTER関数の「含む」に指定します。

エクセル Excel 累計を求める数式あれこれ

FILTER関数(範囲をフィルター処理)
・FILTER関数の書式 ・FILTER関数使用例のサンプルデータ ・FILTER関数の基本 ・空白セルを0ではなく空白にする場合 ・複数条件のフィルター ・関数を使ってフィルター ・横(列)でフィルター ・表示する列を選択する ・FILTER関数の結果を他の関数で使う ・スピルによって新しく追加された関数

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


SUMIFS関数:スピル

エクセル Excel 累計を求める数式あれこれ

C2=SUMIFS(B:B,A:A,"<="&A2:A11)
スピルしてC10まで出力されます。

SUMIF関数、SUMIFS関数
これらの関数の引数「条件」にセル範囲や配列を指定すると数式はスピルします。
これはスピル数式としては基本的な使い方になります。
スピルについて
・スピルとは ・スピルの数式例 ・ゴースト ・スピル範囲での独特な挙動について ・スピルのエラー表示 ・スピル範囲演算子 ・暗黙的なインターセクション演算子 ・従来のスピルしないエクセルとの互換性についての注意点 ・スピル関連記事


SCAN関数:LAMBDA関数内でSUM

エクセル Excel 累計を求める数式あれこれ

C2=SCAN(0,B2:B11,LAMBDA(x,y,SUM(x,y)))
スピルしてC10まで出力されます。

LAMBDA関数を使いこなすのは難易度は高いのですが、使う事でとても便利な場合も多くなります。
LAMBDA以降の新関数について
・LAMBDA関数とLAMBDA関数を引数に指定できるヘルパー関数群 ・TEXT処理関数 ・配列操作関数群
LAMBDA関数(カスタム関数の作成)
・LAMBDA関数の構文 ・LAMBDA関数をセルで使う場合の基本 ・LAMBDA関数の「数式の検証」について ・LAMBDA関数をセルで使う場合の使用例 ・パラメーターの省略について ・LAMBDA関数を名前定義に登録 ・再帰関数の作成 ・LET関数内でLAMBDA関数を使用する ・LAMBDA関数にLAMBDA関数を渡す ・LAMBDA関数のネストと変数のスコープ(適用範囲) ・遅延評価によりLAMBDA関数オブジェクト(関数値)を返すことができる関数 ・LAMBDAヘルパー関数について
SCAN関数(配列にLAMBDAを適用し各中間値を返す)
・MAP関数とSCAN関数とREDUCE関数の使い分け ・SCAN関数の構文 ・SCANの基本動作 ・SCAN関数の使用例と解説 ・[初期値]を省略した時の動作

現在はまだInside版でしか使えませんが、イータ縮小ラムダを使う事で数式が断然簡単になります。
イータ縮小ラムダ(eta reduced lambda)
・LAMBDAヘルパー関数 ・イータ縮小ラムダ関数 ・イータ縮小ラムダ 使用例と解説

エクセル Excel 累計を求める数式あれこれ

C2=SCAN(0,B2:B11,SUM)
スピルしてC10まで出力されます。




同じテーマ「エクセル関数応用」の記事

連続数値部分を取り出し記号で連結
指数近似/対数近似/累乗近似(掲載順位とCTR)
ジャンプ・セル選択の応用(空欄を埋める、1行置きに挿入)
累計を求める数式あれこれ
QRコード、バーコード作成の覚え書き
GROUPBY関数が最強すぎる!Excelの集計作業が爆速に!
セル参照を戻り値とする関数
REDUCE+VSTACKが遅い理由と解決策
HSTACKは速い?遅い?実際に試してみた結果
条件付きMEDIAN関数を作る|LAMBDA関数で汎用〇〇IFSを実現
複数列の直積(デカルト積、クロスジョイン)


新着記事NEW ・・・新着記事一覧を見る

AIは便利なはずなのに…「AI疲れ」が次の社会問題になる|生成AI活用研究(2026-02-16)
カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.マクロとは?VBAとは?VBAでできること|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.メッセージボックス(MsgBox関数)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ