Excelの新しい関数である SCAN 関数を使うことで、累計列をスピル形式で生成することができます。ここでは、SCAN 関数の構造と動作について詳しく解説します。※Excel 365用の式です。
累計計算の式と構造
計算式
以下の式を累計の先頭にセットし、「範囲」のみ指定してください。
=SCAN(0, 範囲, LAMBDA(a, b, a + b))
たとえば、合計をしたい範囲がB2:B20であるならば、以下の式になります。
=SCAN(0, B2:B20, LAMBDA(a, b, a + b))
各関数の役割と構造
SCAN関数
SCAN 関数は、指定した初期値から開始して、指定した範囲内の各要素に対して累積計算を行います。この関数は、Excel 365やExcel 2021で使用できます。

初期値
この計算式では初期値として 0 を使用しています。これは累積計算の開始点となります。
範囲
範囲 には累計を計算したいセル範囲を指定します。たとえば、範囲が B2:B20 であれば、セル B2 から B20 までの値を累積計算します。
LAMBDA関数
LAMBDA 関数は、カスタムの累積計算関数を定義するために使用します。この例では、LAMBDA(a, b, a + b) として定義されています。これは、累積値 a に対して各要素 b を加算することを意味します。

計算式の動作
この計算式は次のように動作します:
SCAN関数は初期値0から開始します。- 範囲内の最初の要素を
0に加算して結果を計算します。 - 次に、累積値に次の要素を加算します。
- このプロセスを範囲内のすべての要素に対して繰り返し、累積値を計算します。
このようにして、指定した範囲内の各要素に対して累積計算を行い、その結果をスピル形式で表示することができます。
具体的な使用例
サンプルテーブル
以下はA1:C20サイズのサンプルテーブルです。このテーブルのC2セルへB2:B20の累計を算出するスピル式を生成する予定です。
| 日付 | 来客数 | 累計 |
|---|---|---|
| 1日 | 840 | |
| 2日 | 1000 | |
| 3日 | 760 | |
| 4日 | 750 | |
| 5日 | 840 | |
| 6日 | 560 | |
| 7日 | 730 | |
| 8日 | 590 | |
| 9日 | 610 | |
| 10日 | 980 | |
| 11日 | 1080 | |
| 12日 | 840 | |
| 13日 | 930 | |
| 14日 | 720 | |
| 15日 | 830 | |
| 16日 | 760 | |
| 17日 | 970 | |
| 18日 | 710 | |
| 19日 | 920 |
計算式の使用例
例えば、B2:B20 に売上データが入力されている場合、C2へ以下の計算式をコピー・ペーストしてください。
=SCAN(0, 範囲, LAMBDA(a,b, a + b))
続けて「関数の挿入(fx)」で一部を修正します。

第2引数のArray(範囲)を消してB2:B20をしています。

OKすれば以下の計算式が完成し、次のようにして累計を計算することができます。
=SCAN(0, B2:B20, LAMBDA(a, b, a + b))

このようにして、 SCAN 関数を使用することで、Excelで簡単に累計列をスピル形式で生成することができます。

コメント