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で簡単に累計列をスピル形式で生成することができます。
コメント