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