Reduziert ein Array auf einen akkumulierten Wert, indem ein LAMBDAauf jeden Wert angewendet und der Gesamtwert im Akkumulator zurückgegeben wird.
Syntax
=REDUCE([initial_value], Array, Lambda(Akkumulator, Wert, Body))
Die REDUCE-Funktionssyntax enthält die folgenden Argumente und Parameter:
-
[initial_value] Legt den Startwert für den Akkumulator fest.
-
Array Ein Array, das reduziert werden soll.
-
LAMBDA Ein LAMBDA, der aufgerufen wird, um das Array zu reduzieren. Der LAMBDA-Parameter akzeptiert drei Parameter:
-
Akkumulator Der Wert wurde summiert und als Endergebnis zurückgegeben.
-
Wert Der aktuelle Wert aus dem Array.
-
Körper Die Berechnung, die auf jedes Element im Array angewendet wird.
-
Anmerkungen
Verwenden Sie das Argument initial_value, um den Startwert für den Akkumulatorparameter festzulegen. Legen Sie in Beispiel 2, in dem Sie den Akkumulator multiplizieren, den Wert auf 1 fest, um eine Multiplikation mit 0 zu vermeiden.
Fehler
Die Übergabe einer ungültigen LAMBDA-Funktion oder einer falschen Anzahl von Parametern ergibt #VALUE! Fehler "Falsche Parameter".
Beispiele
Beispiel 1: Summe der quadrierten Werte
Geben Sie die Beispieldaten in die Zellen A1:C2 ein, und kopieren Sie dann die Formel in Zelle D4:
=REDUCE(, A1:C2, LAMBDA(a,b,a+b^2))
Beispiel 2: Erstellen Sie eine benutzerdefinierte "PRODUCTIF"-Funktion, um nur Werte größer als 50 zu multiplizieren.
Create eine Tabelle namens "Table3" mit einer Spalte namens "nums" ab Zelle E1. Kopieren Sie die folgende Formel in Zelle G2:
=REDUCE(1,Table3[nums],LAMBDA(a,b,IF(b>50,a*b,a)))
Beispiel 3: Nur gerade Werte zählen
Erstellen Sie eine Tabelle mit dem Namen "Table4" mit einer Spalte namens "Nums" ab Zelle D1. Kopieren Sie die folgende Formel in Zelle F2:
=REDUCE(0,Table4[Nums],LAMBDA(a,n,IF(ISEVEN(n),1+a, a)))