SCAN関数はLAMBDAによる計算処理を配列に行い、途中結果を返す関数である。REDUCE関数と違い、最終結果だけでなく途中結果も出力させる。各月までの売上金額の合計を表示したい場合などに使える関数である。
目次
ExcelのSCAN関数の使い方が分からないという方もいるのではないだろうか。SCAN関数は新しくできた関数で、処理内容もかなり複雑なのが特徴である。
本記事ではExcelのSCAN関数の使い方について解説する。SCAN関数とREDUCE関数の違いについてもまとめた。
SCAN関数とは?

SCAN関数は指定した配列に対して、LAMBDAによる計算処理を行う関数である。そして、計算の途中結果をすべて返す。
たとえば、A1〜A5に「1、2、3、4、5」と書かれていたら、それを順番に足し算していくことが可能だ。足し算を行う場合は、「1」「3」「6」「10」「15」と過程が表示される。
SCAN関数はMicrosoft 365で利用可能である。
■SCAN関数の構文
SCAN関数の構文は次のとおり。
- =SCAN({初期値},{配列},{LAMBDA})
{初期値}は必ず指定する必要がある。最初は初期値と配列の先頭の計算処理を行う。
■LAMBDA関数とは?
LAMBDA関数は、ユーザーが独自のカスタム関数を作成できる機能のことである。
足し算や掛け算を行うだけなら、元々ある関数を使うだけで良い。だが、「足し算後に掛け算を行う」といった複雑な処理は、ひとつの関数だけではできない。
LAMBDAを使えばこのような複雑な処理を、ひとつの関数として定義できる。関数として定義すれば、関数名を記述するだけで、いつでもその計算を行える。
関連記事:ExcelのLAMBDA関数を使って関数の自作を実現する方法
SCAN関数の基本的な使い方

SCAN関数の基本的な使い方を見ていこう。
次の3つのやり方を順番に解説する。
- 足し算の途中経過を表示する
- 文字の連結状況を表示する
- その時点の最大値を表示する
■1.足し算の途中経過を表示する
まず、SCAN関数で足し算を行う方法を解説する。
以下では「=SCAN(0,A2:A6,LAMBDA(a,b,a+b))」としている。
A2〜A6の配列のデータを順番に足し算していく。初期値は「0」なので、最初は0+A2(5)の計算となる。

実行すると以下のようになる。
A2からA6までの値を順番に足し算し、その途中経過を返している。

関連記事:Excelで数値を合計するには?「+」やSUM関数を使って計算する3つの方法
■2.文字の連結状況を表示する
続いて、SCAN関数で文字を連結させる方法を解説する。
以下では「=SCAN(“”,A2:A6,LAMBDA(a,b,a&b))」としている。
A2〜A6のデータを順番に「a&b」によって結合させている。

実行すると次のようになる。
A2からA6までの値を順番に連結し、その途中経過を返している。

■3.その時点の最大値を表示する
続いて、SCAN関数でその時点の最大値を表示する方法を解説する。
以下では「=SCAN(0,A2:A6,LAMBDA(a,b,MAX(a,b)))」としている。
MAX関数は「aとbはどちらが大きいか」を判定できる関数である。

実行すると次のようになる。
A2〜A6の値の大きさを順番に比較していく。その時点までの最大値を表示する。

SCAN関数の実用例
SCAN関数の実用例を2つ紹介する。
- 各月までの売上合計金額を表示する
- その時点までの最大得点を表示する
■1.各月までの売上合計金額を表示する
SCAN関数を使えば、各月の売上金額だけでなく、1月と2月の売上金額、1月と2月と3月の売上金額、1月と2月と……。というようにその月時点での金額合計を表示できる。
その時点でいくらまで売り上げたのかが一目で分かるようになる。
■2.その時点までの最大得点を表示する
ゲームをやる際に、その時点での最多得点数を求めることができる。1ゲーム後の最大得点、2ゲーム後の最大得点、3ゲーム後の…、というように表示できる。
「どの時点までは誰が優勢だったのか」一目で分かるようになる。







DIME MAGAZINE











