📊つかえる関数.com

REDUCE関数で累計(ランニングトータル)を計算する方法は?

結論

REDUCE関数で累計を計算できますが、累計配列を作るにはSCAN関数の方が適しています。

新機能上級·

詳しい解説

REDUCE関数を使うと、配列を反復処理しながら累積的な計算を行えます。累計を計算するには `=SCAN(0, B2:B100, LAMBDA(合計, 値, 合計+値))` のようにSCAN関数を使う方が簡単ですが、REDUCEでも `=REDUCE(0, B2:B100, LAMBDA(累計配列, 値, VSTACK(累計配列, SUM(累計配列)+値)))` のように実現できます。初期値を0とし、各要素を順次加算しながら配列を構築します。REDUCEは単一の結果を返すため、累計の配列を作るにはVSTACKなどと組み合わせる必要があります。

執筆・検証:田中 けんた|Excel歴15年・MOS資格保持

バージョン対応

バージョン対応状況
Excel 2016Excel 2019Excel 2021Excel 2024Microsoft 365
REDUCE/SCAN関数は未対応REDUCE/SCAN関数は未対応REDUCE/SCAN関数は未対応SCAN対応・REDUCEは365のみ対応

実務での使用例

売上累計の計算(SCAN使用)

月次売上の累計を計算

=SCAN(0, B2:B13, LAMBDA(累計, 売上, 累計+売上))
  1. B列に月次売上が入力されている場合
  2. SCAN関数で各月の累計を計算
  3. 結果が縦に並んだ累計配列として出力される

合計値の計算(REDUCE使用)

配列の合計値を1つの値として取得

=REDUCE(0, B2:B100, LAMBDA(合計, 値, 合計+値))