Ho testato formule del tipo
- Codice: Seleziona tutto
1: =SOMMA(SE(GIORNO.SETTIMANA(A2:A100;2)=1;B2:B100;""))
2: =MATR.SOMMA.PRODOTTO(--(GIORNO.SETTIMANA(A2:A100;2)=1);B2:B100)
3: =MATR.SOMMA.PRODOTTO(--(GIORNO.SETTIMANA(A1:A100;2)=1);B1:B100)
4: =SOMMA((GIORNO.SETTIMANA(A2:A100;2)=1)*(B2:B100))
Le formule hanno tempi di esecuzione confrontabile (+/-1%)
Ho allungato l'intervallo fino a 1000; il tempo unitario aumenta di circa 10%, tempi di esecuzione confrontabile (+/-1%)
Ho allungato fino a 10mila: tempo unitario raddoppia, leggera prevalenza della formula 3 (-5%).
Ho allungato fino a 100mila: tempo unitario quintuplica, leggera prevalenza delle formule 2 e 3 (-5%)
Ho allungato fino a inserire l'intera colonna: tempo unitario decuplica, leggera prevalenza della formula 3 (-10%)
Insomma, in tutte le situazioni un riferimento all'intera colonna e' penalizzante, e i tempi di esecuzione sono dipendenti dall'intervallo specificato.
La 1 e la 4 sono "a matrice" (Contr-Maiusc-Enter)
I tempi unitari sono confrontati con la condizione precedente (non quella iniziale).
Per finire dico che la formula che ha performato meglio (con righe da 10mila in su) e' quella che non ho ancora scritto:
- Codice: Seleziona tutto
=SOMMA.SE(C2:C100;1;B2:B100)
Questa considera che in colonna C ci sia il calcolo GIORNO.SETTIMANA.
Ciao a tutti.