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

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を適用し各中間値を返す)
・SCAN関数の構文 ・SCANの基本動作 ・SCAN関数の使用例と解説 ・[初期値]を省略した時の動作

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

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

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




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

SUMIF関数の良くある間違い

エクセルの関数の中で最も頻繁に使われる関数と言っても過言ではないSUMIF関数ですが、間違った指定をして、合計が合わずに悩み続けて時間を浪費してしまうことあります、そういう間違いで最も多いのが、範囲と合計範囲の指定間違いです。まずは、SUMIF関数の確認 SUMIF関数 範囲の中で、指定した条件を満たすセルの値を合…
論理式とは条件式とは(IF関数,AND関数,OR関数)
エクセルを使いこなす上で論理式はとても重要です、そもそも論理式とは何か、どうして論理式というのか、論理式の作り方、論理式の使い方について解説します。そもそも論理式という言い方が分かりずらいと思う。なぜエクセルでは論理式というのか… Microsoftのヘルプによると、IF関数 構文:IF(logical_test,
先頭の数値、最後の数値を取り出す
数値と文字が混在した文字列から、数値だけを取り出します、先頭の数値や、最後の数値だけを取り出す方法です。A1セルに 1234abcd5678 このA1セルから、1234や5678を取り出します。先頭の数値…1234 =LOOKUP(10^17,LEFT(A1,COLUMN($1:$1))*1) COLUMN($1:…
最後の空白(や指定文字)以降の文字を取り出す
いくつかのスペースやハイフンで区切られた文字列から、最後のスペースやハイフン以降の文字列を取り出します。A1セルに、abcdefghi や abc-def-ghi これらの文字列から、ghiを取り出します。以下では、見やすいように区切り文字は"-"で説明します。
SUMIFの間違いによるパフォーマンスの低下について
再計算が終わらない… そんな経験をした人は多いと思います、原因はさまざまですが、まずは数式を見直してみましょう。単純な四則演算が遅いという事はありません、それはもうPCの問題です。時間のかかる計算としては、大量データの集計計算を多数使っている場合です。
数値範囲で表検索するVLOOKUP近似一致
・表をエクセルで扱えるように調整する ・VLOOKUP関数の近似一致 ・VLOOKUP近似一致がどのように値を探しているか ・VLOOKUP近似一致の表を作成する場合の注意点 ・VLOOKUP関数に関する参考ページ
エクセルの日付と時刻のまとめ
・日付時刻の基本ワークシート関数 ・日付時刻の表示形式・入力規則 ・日付時刻の応用 ・マクロVBAでの日付時刻
連続数値部分を取り出し記号で連結
・作成する関数の仕様 ・スピル前:2019永続版まで ・スピル後:Office365 ・LET関数:Office365 Insider 2020年3月現在 ・関数の作成手順 ・LET関数の作成手順
指数近似/対数近似/累乗近似(掲載順位とCTR)
・Google Search Consoleから:掲載順位とCTRデータを取得 ・散布図と近似曲線 ・X軸Y軸を入れ替えて散布図を作成 ・適切な近似曲線の選択について ・指数近似を数式で求める ・関数の説明 ・掲載順位に対するCTRを求める ・指数近似/対数近似/累乗近似(掲載順位とCTR)の最後に
ジャンプ・セル選択の応用(空欄を埋める、1行置きに挿入)
ジャンプ機能は、指定のセルにジャンプする機能です。このジャンプ先の指定方法が豊富に用意されていて、その応用範囲はとても広いです。以下の2通り、・表の同上で空欄になっているセルを埋める ・表に1行おきにきに空白行を挿入する 動画と簡単な解説で紹介します。
累計を求める数式あれこれ


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

TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.繰り返し処理(For Next)|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.条件分岐(Select Case)|VBA入門
10.ブック・シートの選択(Select,Activate)|VBA入門




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


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。


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