REDUCE関数で累計(ランニングトータル)を計算する方法は?
REDUCE関数を使うと、配列を反復処理しながら累積的な計算を行えます。累計を計算するには `=SCAN(0, B2:B100, LAMBDA(合計, 値, 合計+値))` のようにSCAN関数を使う方が簡単ですが、REDUCEでも `=REDUCE(0, B2:B100, LAMBDA(累計配列, 値, VSTACK(累計配列, SUM(累計配列)+値)))` のように実現できます。初期値を0とし、各要素を順次加算しながら配列を構築します。REDUCEは単一の結果を返すため、累計の配列を作るにはVSTACKなどと組み合わせる必要があります。
📊 バージョン対応
2016
❌
REDUCE/SCAN関数は未対応
2019
❌
REDUCE/SCAN関数は未対応
2021
❌
REDUCE/SCAN関数は未対応
365
✅
対応
📋 実務での使用例
💼 売上累計の計算(SCAN使用)
月次売上の累計を計算
=SCAN(0, B2:B13, LAMBDA(累計, 売上, 累計+売上))- B列に月次売上が入力されている場合
- SCAN関数で各月の累計を計算
- 結果が縦に並んだ累計配列として出力される
💼 合計値の計算(REDUCE使用)
配列の合計値を1つの値として取得
=REDUCE(0, B2:B100, LAMBDA(合計, 値, 合計+値))REDUCESCANLAMBDA累計動的配列
📄
動的配列関数 移行マップ
旧関数 → 新関数の書き換え一覧(2021/365対応)
準備中※ PDFは現在作成中です。近日公開予定