Excel REDUCE 関数(365)
REDUCE 関数は、配列内の各値にLAMBDA 関数を適用し、アキュムレータ内の合計値を返すことで、配列を単一の累積値に縮小します。

構文
=REDUCE ()[initial_value],array,lambda(accumulator, value))
引数
- 初期値(省略可):アキュムレータの開始値です。省略すると、デフォルト値は0 になります。
- 配列(必須):縮小対象の配列です。
- ラムダ(必須):配列を縮小するために使用するカスタム LAMBDA 関数です。
- アキュムレータ(必須):集計された値で、最終結果として返されます。
- 値(必須):配列内の各要素に適用する計算式です。
返す値
REDUCE 関数は単一の値を返します。
関数に関する注意事項
- REDUCE 関数は、Microsoft 365 向けExcel に 新たに導入された関数です。そのため、それ以前のバージョンのExcel ではご利用いただけません。
- #VALUE!エラー値は、以下のいずれかの状況が発生した場合に表示されます:
- 無効な LAMBDA 関数が指定された場合;
- パラメーターの数が正しくない場合。
例
下記のスクリーンショットのようにデータの配列があります。この配列内の偶数と奇数をそれぞれ合計するには、以下の手順を実行してください:
偶数を合計するには、下記の数式をセル F6 にコピーし、Enterキーを押して、結果を取得してください。
=REDUCE()0,B6:D9,LAMBDA(a,b,IF(ISEVEN(b),a+b,a)))

奇数を合計するには、下記の数式をセル F7 にコピーし、Enterキーを押して、結果を取得してください。
=REDUCE()0,B6:D9,LAMBDA(a,b,IF(ISODD(b),a+b,a)))

注:上記の各数式では、指定された初期値引数が0に設定されています。この引数は省略可能で、省略した場合は空白に置き換えられます。たとえば、偶数を合計する場合、セルF6の数式は次のように変更できます:
=REDUCE(),B6:D9,LAMBDA(a,b,IF(ISEVEN(b),a+b,a)))
関連関数:
Excel 関数 MAP
MAP 関数は、指定された配列の各値にLAMBDA 関数を適用し、新しい値にマッピングして形成された配列を返します。
Excel 関数 LAMBDA
Excel の LAMBDA 関数を使えば、ワークブック全体で再利用可能なカスタム関数を簡単に作成できます。
Excel 関数 MAKEARRAY
Excel のMAKEARRAY 関数 は、指定された行数と列数に基づいて計算された配列を返します。