REDUCE関数はLAMBDAによる計算処理を配列に行い、最終結果を返す関数である。他の関数ではできない複雑な計算処理をLAMBDAによって定義し、集計を楽に行える。SCAN関数と違い最終結果のみを返す。
目次
ExcelのREDUCE関数の使い方が分からないという方もいるのではないだろうか?ExcelのREDUCE関数は新しく登場した関数で、処理内容が少々複雑なのが特徴である。
本記事ではExcelのREDUCE関数の使い方を解説する。初期値を設定する方法や、LAMBDA関数の使い方についてまとめた。
REDUCE関数とは?

REDUCE関数はLAMBDAによる計算処理を、指定した配列に行っていく関数だ。そして、計算処理が終わった結果を最後に返す。
たとえば、A1〜A5に「1、2、3、4、5」と書かれていたら、それを順番に足し算していき、最後に全部の足し算の結果である「15」を返す、ということが可能である。
REDUCE関数はMicrosoft 365でのみ利用可能な関数だ。Microsoft 365に登録していない場合は登録が必要となる。
■REDUCE関数の構文
REDUCE関数の基本的な構文は次のとおり。
- =REDUCE({初期値},{配列},{ラムダ})
初期値を指定することで、その値からスタートできる。たとえば「0」を初期値として指定した場合、最初は0と{配列の最初}の計算から始まる。
■LAMBDA関数とは?
LAMBDA関数とは、ユーザーが独自のカスタム関数を生成できる機能である。
たとえば、足し算を行うだけならSUM関数で問題はない。ただ、SUM関数だけでは「足し算をした後に2倍にする」といった複雑な処理ができない。
LAMBDA関数を使えば、複雑な計算処理をあらかじめ関数として「定義」できる。関数として定義すれば、その関数を呼び出すだけで、計算処理を簡単に行える。
関連記事:ExcelのLAMBDA関数を使って関数の自作を実現する方法
REDUCE関数の基本的な使い方

REDUCE関数の基本的な使い方について解説する。
REDUCE関数で次の5つを行う方法を順番に見ていこう。
- 数値の合計を求める
- セルの数を求める
- 文字数の合計を求める
- 文字列を連結する
- 最大値・最小値を求める
■1.数値の合計を求める
まず、REDUCE関数で配列の数値の合計を求める方法を解説する。SUM関数でも合計は求められるが、REDUCE関数の簡単な例として紹介する。
以下では「=REDUCE(0,A2:A6,LAMBDA(a,b,a+b))」としている。
配列(A2〜A6)のデータに対して、LAMBDA関数を適用させていく。

実行すると「15」と表示された。

REDUCE関数の中では「5+3+2+4+1」という計算処理が行われている。
関連記事:Excelで数値を合計するには?「+」やSUM関数を使って計算する3つの方法
■2.セルの数を求める
続いて、セルの数を求める方法を解説する。
以下では「=REDUCE(0,A2:A6,LAMBDA(a,b,a+1))」としている。
今度は配列(A2〜A6)の個数を1つずつ足していっている。

実行すると「5」と表示される。

■3.文字数の合計を求める
REDUCE関数を使えば、配列の文字数合計も簡単に求められる。
以下では「=REDUCE(0,A2:A6,LAMBDA(a,b,a+LEN(b)))」としている。

LEN関数で各データの長さ(文字数)を順番に求め、その数を足していっている。
実行すると「31」と表示された。A2〜A6の文字数の合計になっている。

関連記事:スプレッドシートでLEN関数を使って文字数をカウントする方法【図解】
■4.文字列を連結する
続いて、配列の文字列を連結させる方法を解説する。
以下では「=REDUCE(“”,A2:A6,LAMBDA(a,b,a&b))」としている。
最初から空文字からスタート。A2〜A6の文字列を順番に結合させていく。

実行すると、配列の各データが連結されていることが分かる。

■5.最大値・最小値を求める
最大値を求める方法を解説する。
以下では「=REDUCE(0,A2:A6,LAMBDA(a,b,MAX(a, b)))」としている。

MAX関数はaとbのどちらが大きいか求められる関数である。
最初は「0とA2どちらが大きいか」を検証する。次に、大きい方の数とA3を比較…。このようにして、A2〜A6でもっとも大きい数を調べる。
実行すると最大値である「5」が表示された。

今度は最小値を求める方法を解説する。
以下では「=REDUCE(1000,A2:A6,LAMBDA(a,b,MIN(a, b)))」としている

MIN関数はaとbのどちらが小さいか求められる関数である。
最初は「1000とA2どちらが小さいか」を検証する。次に、小さい方の数とA3を比較…。このようにして、A2〜A6でもっとも小さい数を調べる。
実行するともっとも小さい数である「1」が表示された。

REDUCE関数とSCAN関数の違い

REDUCEとよく似た関数にSCAN関数というものがある。
SCAN関数も同じくLAMBDAによる計算処理を行える関数だ。そして、構文もREDUCE関数と全く同じである。初期値と配列を指定することで、配列に対してLAMBDAによる処理を行える。
REDUCE関数は最終結果のみを返す。だが、SCAN関数は途中経過も返すのが異なる点だ。例を1つ見てみよう。
以下では「=SCAN(0,A2:A6,LAMBDA(a,b,a+b))」としている。A2〜A6までのデータを順番に足し算しようとしている。

実行すると次のようになる。REDUCE関数は最終結果のみを返すが、SCAN関数は途中経過もすべて返していることが分かる。

まとめ
本記事ではREDUCE関数とは何かについて解説した。最後にREDUCE関数の基本的な使い方についておさらいしよう。
◯REDUCE関数の構文
- =REDUCE({初期値},{配列},{ラムダ})
◯REDUCE関数の使用例
- 数値の合計を求める
例:=REDUCE(0,A2:A6,LAMBDA(a,b,a+b)) - セルの数を求める
例:=REDUCE(0,A2:A6,LAMBDA(a,b,a+1)) - 文字数の合計を求める
例:=REDUCE(0,A2:A6,LAMBDA(a,b,a+LEN(b))) - 文字列を連結する
例:=REDUCE(“”,A2:A6,LAMBDA(a,b,a&b)) - 最大値・最小値を求める
例:=REDUCE(0,A2:A6,LAMBDA(a,b,MAX(a, b)))
例:=REDUCE(1000,A2:A6,LAMBDA(a,b,MIN(a, b)))
REDUCE関数は、特定範囲にLAMBDA関数で定義した複雑な計算処理を行える。この関数を使いこなすことで、複雑な計算をスムーズに行えるようになる。
関連記事:ExcelのBYROW関数を使って合計値や平均値をかんたんに算出する方法
構成/編集部







DIME MAGAZINE











