🎯 結論:SCANは「累積処理を1式で自動化する」最新の神関数です

Excelで仕事をしていると、こんなことを思ったことはありませんか。

  • 「売上の累積を自動で出したい…」
  • 「在庫の増減を1式で管理したい…」
  • 「進捗率の推移をキレイに出したい…」
  • 「SUMのコピー地獄から解放されたい…」

私もサラリーマン戦士として Excel と毎日向き合ってきましたが、累積処理は本当に面倒です。 行ごとに式をコピーして、$マークを付けて、SUM の範囲を調整して… 気づけば “壊れやすい集計表” が完成してしまう。

そんな悩みを一撃で解決してくれるのが SCAN(スキャン)関数 です。

SCAN は Excel の中でもかなり新しい関数で、 「累積処理」「時系列処理」「途中経過の出力」 が たった 1 つの式で完結する、まさに“神関数”です。

この記事では、SCAN の基本から応用まで、実務で本当に使えるテクニックをまとめて紹介します。

1. SCAN関数とは?(一言でいうと「累積の自動化」)

SCAN関数は、配列(範囲)を先頭から順番に処理し、途中経過をすべて返す関数です。

コード

=SCAN(初期値, 配列, LAMBDA(累積値, 現在値, 計算式))
  • 初期値:累積のスタート(0 が多い)
  • 配列:処理したい範囲
  • LAMBDA:累積処理の内容
    • 第1引数:累積値(前回の結果)
    • 第2引数:現在値(今回の値)

SCAN のすごいところは、 「前の結果を使って次を計算する」 という、従来の Excel では面倒だった処理が一瞬でできる点です。

LAMBDA の基礎は LAMBDA関数とは を参照ください。

2. SCAN関数の基本例(まずはこれだけ覚えればOKです)

■ 売上の累積(最も使うやつ)

日付売上
1日10
2日20
3日30

コード

=SCAN(0, B2:B4, LAMBDA(a, b, a + b))

10|30|60

従来の =SUM($B$2:B2) は不要。コピーも不要。壊れません。

■ 進捗率の累積

コード

=SCAN(0, B2:B4, LAMBDA(a, b, a + b))

20%|50%|60%

プロジェクト管理で最強です。

■ 在庫の増減(入出庫管理)

コード

=SCAN(0, B2:B4, LAMBDA(a, b, a + b))

10|7|12

入庫・出庫の累積が自動で追えます。

3. SCANの応用(ここからが本番です)

SCAN は足し算だけではありません。 LAMBDA の中身を変えるだけで、ほぼ何でも累積できます

■ 文字列の累積(コメント生成)

コード

=SCAN("", A2:A5, LAMBDA(a, b, a & " → " & b))

A → B → C → D

資料説明文の自動生成にも使えます。

■ 累積の最大値(最高記録の推移)

コード

=SCAN(-999, B2:B10, LAMBDA(a, b, MAX(a, b)))

→ その時点での最高値を常に表示。

■ TRUE が出たらずっと TRUE(フラグ保持)

コード

=SCAN(FALSE, B2:B10, LAMBDA(a, b, a OR b))

チェック項目の管理に最適です。

■ 行番号の自動生成(ROW不要)

コード

=SCAN(0, A2:A10, LAMBDA(a, b, a + 1))

1,2,3,4… と自動で番号付け。

4. SCAN × 他関数の組み合わせ(実務で最強)

■ SCAN × FILTER(条件付き累積)

営業部だけの累積売上:

コード

=SCAN(0, FILTER(B2:B100, A2:A100="営業"), LAMBDA(a, b, a + b))

FILTER → SCAN の流れは鉄板です。

FILTER関数を参照

■ SCAN × TAKE(最新◯件の累積)

直近7日間の累積:

コード

=SCAN(0, TAKE(B2:B100, -7), LAMBDA(a, b, a + b))

最新データだけを対象にしたいときに便利です。

■ SCAN × SORT(日付順に並べて累積)

コード

=SCAN(0, SORT(B2:C100, 1, 1), LAMBDA(a, b, a + b))

日付順に並べ替えてから累積できます。

5. SCANとREDUCEの違い(ここで理解が一気に深まります)

目的SCANREDUCE
累積結果を全部返す×
最終結果だけ返す
時系列の推移
集計の最終値

SCAN:全部返す REDUCE:最後だけ返す

この違いだけ覚えれば完璧です。

6. SCANが実務で強い理由(サラリーマン戦士の本音)

SCAN を使い始めて感じたのは、 「累積処理がこんなに簡単になるのか…」 という衝撃でした。

  • 売上の累積が1式で作れる
  • 在庫の増減が自動で追える
  • 進捗率の推移が一瞬で出せる
  • FILTER と組み合わせると“動的累積”が作れる
  • 式をコピーしないから壊れない
  • 時系列処理が圧倒的に楽になる

従来の Excel の面倒さが嘘のように消えます。

7. よくあるミスと注意点

❗ LAMBDA の引数の順番を間違える

正しくは LAMBDA(累積値, 現在値, 計算式)

❗ 初期値を忘れる

累積なら 0 が基本です。

❗ FILTER後の配列はサイズが変わる

結果の長さが変わるので参照先に注意。

❗ SCANは“全部返す”

最終値だけ欲しいなら REDUCE

8. まとめ:SCANは“累積処理の最強ツール”です

  • 累積計算を1式で実現
  • 売上・進捗・在庫など時系列に最強
  • FILTER・SORTと組み合わせるとさらに強力
  • REDUCE と使い分けると完璧
  • 最新 Excel の配列関数の代表格

Excel で時系列データを扱うなら、 SCAN関数は絶対に覚えておきたい武器です。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です