透過對每個值套用 LAMBDA 並將累加器中的總值回傳,將陣列縮減為累積值。
語法
=REDUCE ([initial_value],陣列,lambda (累加器,值,身體) )
REDUCE 函數語法具有下列引數和參數:
[initial_value] 設定累加器的起始值。
陣列 一個需要縮減的陣列。
蘭姆達 一個 LAMBDA 被呼叫用來縮小陣列。 LAMBDA 包含三個參數:
- 累加器 該數值會累計並作為最終結果返回。
- 價值 陣列的當前值。
- 身體 計算應用於陣列中的每個元素。
註解
使用 initial_value 引數來設定累計值參數的起始值。 在範例 2 中,在乘以累計值的地方,將值設定為 1 以避免乘以 0。
注意:若未提供initial_value值,陣列中的第一個值將作為起始值。
錯誤
提供無效的 LAMBDA 函數或不正確的參數數目會傳回 #VALUE! 錯誤稱為「不正確的參數」。
範例
範例 1:加總平方值
將範例資料輸入儲存格 A1:C2,然後將公式複製到儲存格 D4:
=REDUCE(, A1:C2, LAMBDA(a,b,a+b^2))
範例 2:建立自訂的 "PRODUCTIF" 函數,只乘以大於 50 的值
建立一個名為「Table3」的表格,從 E1 格開始有一欄名為「nums」。 將下列公式複製到儲存格 G2:
=REDUCE(1,Table3[nums],LAMBDA(a,b,IF(b>50,a*b,a)))
範例 3:只計算偶數值的數量
建立名為 "Table4" 的表格,從儲存格 D1 開始建立一個名為 "Nums" 的欄。 將下列公式複製到儲存格 F2:
=REDUCE(0,Table4[Nums],LAMBDA(a,n,IF(ISEVEN(n),1+a, a)))