Reducerer en matrix til en akkumuleret værdi ved at anvende en LAMBDA på hver værdi og returnere den samlede værdi i akkumulatoren.
Syntaks
=REDUCE([initial_value], matrix, lambda(akkumulator, værdi, brødtekst))
Syntaksen for funktionen REDUCE har følgende argumenter og parametre:
-
[initial_value] Angiver startværdien for akkumulatoren.
-
matrix En matrix, der skal reduceres.
-
lambda En LAMBDA, der kaldes for at reducere matrixen. LAMBDA tager tre parametre:
-
akkumulator Værdien blev lagt sammen op og returneret som det endelige resultat.
-
værdi Den aktuelle værdi fra matrixen.
-
Kroppen Beregningen, der anvendes på hvert element i matrixen.
-
Bemærkninger
Brug argumentet initial_value til at angive startværdien for akkumulatorparameteren. I eksempel 2, hvor du multiplicerer akkumulator, skal du angive værdien til 1 for at undgå at multiplicere med 0.
Fejl
Hvis du angiver en ugyldig LAMBDA-funktion eller et forkert antal parametre, returneres en #VÆRDI! fejl kaldet "Forkerte Parametre".
Eksempler
Eksempel 1: Summer de kvadrerede værdier
Indtast eksempeldataene i cellerne A1:C2, og kopiér derefter formlen til celle D4:
=REDUCE(, A1:C2, LAMBDA(a,b,a+b^2))
Eksempel: 2: Opret en brugerdefineret "PRODUKT.HVIS"-funktion for kun at multiplicere værdier, der er større end 50
Create en tabel med navnet "Tabel3" med én kolonne med navnet "nums" startende ved celle E1. Kopiér følgende formel til celle G2:
=REDUCE(1,Table3[nums],LAMBDA(a,b,IF(b>50,a*b,a)))
Eksempel 3: Tæl kun lige værdier
Opret en tabel med navnet "Tabel4" med én kolonne med navnet "Nums" startende ved celle D1. Kopiér følgende formel til celle F2:
=REDUCE(0,Table4[Nums],LAMBDA(a,n,IF(ISEVEN(n),1+a, a)))