REDUCE関数 – 値の集まりに対して累積的に処理を行い、単一の結果を返す関数
1. 使い方と活用例
REDUCE関数は、配列内の各要素に対して反復処理を行い、1つの値に集約(縮約)するための関数です。
初期値とラムダ式を指定することで、合計や積、文字列結合、カスタム集計などを柔軟に定義できます。
LAMBDA関数と組み合わせて使う関数の1つであり、Excelの高度な動的配列処理に適しています。
2. 基本の書式
=REDUCE(初期値, 配列, LAMBDA(累積値, 現在の値, 処理))
3. 引数の説明
- 初期値 – 集計処理の開始時点の値。たとえば、合計であれば0、積であれば1などを指定します。
- 配列 – 反復処理を行う対象の配列またはセル範囲を指定します。
- LAMBDA – 2つの引数(累積値、現在の値)を取り、どのように値を処理するかを指定します。
4. 使用シーン
- 配列内の値を使って合計や積を計算する
- 文字列の連結や条件に応じたカスタム集計を行う
- 動的に変化するデータを関数的にまとめて処理したいとき
5. 応用のポイント
REDUCE関数は他の動的配列関数(MAP、SCAN、BYROWなど)と組み合わせることで、複雑なデータ処理が可能になります。
LAMBDA関数を使いこなすことがこの関数のカギです。初期値の設定も重要で、処理内容に応じて適切に選ぶ必要があります。
6. 具体例とその解説
=REDUCE(0, {1,2,3,4}, LAMBDA(a, b, a + b))
この式は配列 {1,2,3,4} の合計を計算します。
初期値0から始まり、順に1、2、3、4を加算することで、結果は10になります。
=REDUCE("", {"A","B","C"}, LAMBDA(a, b, a & b))
この式は文字列 “A”、”B”、”C” を連結します。初期値が空文字列なので、結果は “ABC” になります。
7. 関連関数の紹介
- SCAN関数 – REDUCEと似た構文で、各段階の累積結果を配列で返す関数
- MAP関数 – 配列の各要素に対して関数処理を適用する関数
- LAMBDA関数 – ユーザー定義の匿名関数を作成する関数
- BYROW関数 – 行単位でカスタム処理を実行する関数
- MAKEARRAY関数 – 指定サイズの配列をLAMBDAで生成する関数
8. まとめ
REDUCE関数は、反復処理によって配列の要素を1つの値に集約できる強力な関数です。
LAMBDA関数との併用により、柔軟かつ直感的な集計ロジックを構築できます。
関数型プログラミングに近い考え方でExcelを扱いたいユーザーにとって、非常に有用な関数です。
9. 対応バージョン
REDUCE関数は、Microsoft 365 および Excel 2021 以降で利用可能です。
それ以前のバージョンでは使用できません。