各値に LAMBDA を適用し、アキュムレータの合計値を返すことで、配列を累積値に減らします。
構文
=REDUCE([initial_value], array, lambda(アキュムレータ, 値, 本文))
REDUCE 関数の構文には、次の引数とパラメーターがあります:
[initial_value] アキュムレータの開始値を設定します。
配列 削減する配列。
ラムダ 配列を減らすために呼び出される LAMBDA。 LAMBDA は、次の 3 つのパラメーターを受け取ります。
- アキュムレータ 合計された値は、最終的な結果として返されます。
- 値 配列の現在の値。
- 体 配列内の各要素に適用される計算。
解説
initial_value 引数を使用して、アキュムレーター パラメーターの開始値を設定します。 アキュムレーターを乗算する例 2 では、値を 1 に設定して、0 が乗算されないようにします。
注: initial_valueに値が指定されていない場合、配列の最初の値が開始値として使用されます。
エラー
無効な LAMBDA 関数または誤った数のパラメーターを指定すると、#VALUE! が返されます 「不正なパラメーター」と呼ばれるエラー。
例
例 1:2 乗値を合計する
サンプル データをセル A1:C2 に入力し、数式をセル D4 にコピーします。
=REDUCE(, A1:C2, LAMBDA(a,b,a+b^2))
例 2:カスタマイズされた "PRODUCTIF" 関数を作成して、50 を超える値のみを乗算する
セル E1 から始まる "nums" という名前の列を 1 つ持つ "Table3" という名前のテーブルを作成します。 セル G2 に次の数式をコピーします。
=REDUCE(1,Table3[nums],LAMBDA(a,b,IF(b>50,a*b,a)))
例 3:偶数の値のみを数える
セル D1 から始まる「Nums」という名前の 1 つの列を持つ「Table4」という名前のテーブルを作成します。 セル F2 に次の数式をコピーします。
=REDUCE(0,Table4[Nums],LAMBDA(a,n,IF(ISEVEN(n),1+a, a)))