sintassi
=REDUCE(valore/testo iniziale, intervallo, LAMBDA(x variabile accumulativa,y variabile valore,funzione))
=REDUCE(valore/testo iniziale, intervallo, LAMBDA(x variabile accumulativa,y variabile valore,funzione))
esempio: calcolo la somma di una matrice
=REDUCE(0,{1,2,3,4,5},LAMBDA(a,b,a+b))
15
esempio: calcolo la somma di una matrice
sommiamo tutit i numeri di una matrice in una cella usando LAMBDA
=REDUCE(0,A1:C3,LAMBDA(a,b,a+b))
esempio: somma consizionale, come SOMMA.PIU.SE (SUMIFS)
sommiamo tutti i numeri di una matrice B2:B11
in una cella usando LAMBDA ma con una condizione che verifica se il valore é maggiore di 50
=REDUCE(0,B2:B11,LAMBDA(a,v,SE(v>50,a+v,a)))
=REDUCE(0,B2:B11,LAMBDA(a,v,IF(v>50,a+v,a)))
esempio: sommiamo i valori din un intervallo verificando lo stato nel testo
a seconda della sigla dello stato della matrice estraiamo dal testo il valore e lo sommiamo
come fare un SUMIFS in cui la condizione é nel testo usando le funzioni di strazione del testo
=REDUCE(0,B2:B13,LAMBDA(a,v,SE(TESTO.PRECEDENTE(v,"-")=D2:D5,a+TESTO.SUCCESSIVO(v,"-"),a)))
=REDUCE(0,B2:B13,LAMBDA(a,v,IF(TEXTBEFORE(v,"-")=D2:D5,a+TEXTAFTER(v,"-"),a)))
esempio: funzione testo accodo il testo a seonda della sigla dello stato
a seconda della sigla dello stato della matrice estraiamo dal testo il valore e lo sommiamo
come fare un SUMIFS in cui la condizione é nel testo usando le funzioni di strazione del testo
=SOSTITUISCI(REDUCE("",A2:A13,LAMBDA(a,v,SE(TESTO.SUCCESSIVO(v,", ")=C2:C4,a & ", "&TESTO.PRECEDENTE(v,","),a))),", ","",1)
=SUBSTITUTE(REDUCE("",A2:A13,LAMBDA(a,v,IF(TEXTAFTER(v,", ")=C2:C4,a&", " & TEXTBEFORE(v,","),a))),", ","",1)
esempio: sostutuzione massiva di testo in base ad una tabella mappatura
questa formula sostutisce dei valori in un testo con altri valori nella stessa cella
la formula cerca nel testo della colonna B i valori della tabella nella colonna E e li sosuisice nella stessa cella con quelli della colonna F
all fine é come fare un sosituisci più volte nella stessa cella usando una tabella come mappatura
=REDUCE(B2:B11,E2:E5,LAMBDA(a,v,SOSTITUISCI(a,v,CERCA.X(v,E2:E5,F2:F5))))
=REDUCE(B2:B11,E2:E5,LAMBDA(a,v,SUBSTITUTE(a,v,XLOOKUP(v,E2:E5,F2:F5))))
esempio: divisione di una colonna in più colonne
é possibile utilizzare la funzione DIVIDI.TESTO( (TEXTSPLIT)
anche su un intervallo colonna invece che su una cella singola
faccedenolo direttamente non funziona
le formule che creano array non funzionano se l'argomento passato é un array a sua volta
=DIVIDI.TESTO(Tabella[Dati],",")
=TEXTSPLIT(Tabella[Dati],",")
non funziona
si può usare questa formula che usa REDUCE