透過對每個值套用一個 LAMBDA 並在累計值中傳回總計值,將陣列縮減為累計值。   

語法

=REDUCE ([initial_value], array, lambda (accumulator, value, body) )

REDUCE 函數語法具有下列引數和參數:

  • [initial_value]    設定累計值的起始值。

  • array      要縮減的陣列。

  • lambda      呼叫用於縮減陣列的 LAMBDA。 LAMBDA 需要三個參數:

    • accumulator    值已加總且傳回為最終結果。

    • value     陣列的目前值。

    • 身體    計算套用至陣列中每個元素。

備註

使用 initial_value 引數來設定累計值參數的起始值。 在範例 2 中,在乘以累計值的地方,將值設定為 1 以避免乘以 0。

錯誤

提供無效的 LAMBDA 函數或不正確的參數數目會傳回 #VALUE! 錯誤稱為「不正確的參數」。

範例

範例 1:加總平方值

將範例資料輸入儲存格 A1:C2,然後將公式複製到儲存格 D4:

=REDUCE(, A1:C2, LAMBDA(a,b,a+b^2))

第一個 REDUCE 函數範例 1

範例 2:建立自訂的 "PRODUCTIF" 函數,只乘以大於 50 的值

Create 名為 「Table3」 的表格,其中一欄從單元格 E1 開始,名為 「nums」。。 將下列公式複製到儲存格 G2:

=REDUCE(1,Table3[nums],LAMBDA(a,b,IF(b>50,a*b,a)))

REDUCE LAMBDA 範例

範例 3:只計算偶數值的數量

建立名為 "Table4" 的表格,從儲存格 D1 開始建立一個名為 "Nums" 的欄。 將下列公式複製到儲存格 F2:

=REDUCE(0,Table4[Nums],LAMBDA(a,n,IF(ISEVEN(n),1+a, a)))

第三個 REDUCE 函數範例

另請參閱

LAMBDA 函數

MAP 函數

SCAN 函數

MAKEARRAY 函數

BYCOL 函數

BYROW 函數

ISOMITTED 函數

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。