(コピペ用)累計列をスピル形式で生成するExcel計算式

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 を加算することを意味します。

計算式の動作

この計算式は次のように動作します:

  1. SCAN 関数は初期値 0 から開始します。
  2. 範囲内の最初の要素を 0 に加算して結果を計算します。
  3. 次に、累積値に次の要素を加算します。
  4. このプロセスを範囲内のすべての要素に対して繰り返し、累積値を計算します。

このようにして、指定した範囲内の各要素に対して累積計算を行い、その結果をスピル形式で表示することができます。

具体的な使用例

サンプルテーブル

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

コメント