
Formula generica
=SUMPRODUCT(range*ISFORMULA(range))
Sommario
Per sommare i risultati solo dalle formule, è possibile utilizzare le funzioni SUMPRODUCT e ISFORMULA. Nell'esempio mostrato, la formula in F6 è:
=SUMPRODUCT(sales*ISFORMULA(sales))
dove "vendite" è l'intervallo denominato C5: C13, i valori in C5: C9 sono hardcoded e i valori in C10: C13 vengono generati con le formule.
Spiegazione
Questa formula utilizza la logica booleana per "filtrare" i numeri nella colonna C prima di sommarli con la funzione SUMPRODUCT. Quando la formula viene valutata, i valori nell'intervallo denominato "vendite" vengono espansi in una matrice:
(925;1038;1105;1210;1250;1313;1379;1448;1520)
Per filtrare i valori che non sono creati da una formula, la funzione ISFORMULA consiste nel creare un array di valori VERO FALSO come questo:
=ISFORMULA(sales) =(FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE)
Quando questi due array vengono moltiplicati l'uno per l'altro, l'operazione matematica forza i valori VERO e FALSO a 1 e 0:
=SUMPRODUCT((925;1038;1105;1210;1250;1313;1379;1448;1520)*(0;0;0;0;0;1;1;1;1)) =SUMPRODUCT((0;0;0;0;0;1313;1379;1448;1520))
Gli zeri annullano i risultati non di formula e SUMPRODUCT somma e restituisce un risultato finale.
Non formule
Per sommare i valori non generati da una formula, puoi aggiungere la funzione NOT in questo modo:
=SUMPRODUCT(sales*NOT(ISFORMULA(sales)))
Qui, la funzione NOT inverte i risultati VERO FALSO restituiti dalla funzione ISFORMULA, che filtra tutti i valori generati con una formula.