
Formule générique
=SUMPRODUCT(range*ISFORMULA(range))
Sommaire
Pour additionner uniquement les résultats des formules, vous pouvez utiliser les fonctions SUMPRODUCT et ISFORMULA. Dans l'exemple illustré, la formule en F6 est:
=SUMPRODUCT(sales*ISFORMULA(sales))
où «ventes» est la plage nommée C5: C13, les valeurs de C5: C9 sont codées en dur et les valeurs de C10: C13 sont générées avec des formules.
Explication
Cette formule utilise une logique booléenne pour "filtrer" les nombres de la colonne C avant de les additionner avec la fonction SOMMEPROD. Lorsque la formule est évaluée, les valeurs de la plage nommée "ventes" sont développées dans un tableau:
(925;1038;1105;1210;1250;1313;1379;1448;1520)
Pour filtrer toutes les valeurs qui ne sont pas créées par une formule, la fonction ISFORMULA consiste à créer un tableau de valeurs TRUE FALSE comme ceci:
=ISFORMULA(sales) =(FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE)
Lorsque ces deux tableaux sont multipliés l'un par l'autre, l'opération mathématique contraint les valeurs TRUE et FALSE à 1 et 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))
Les zéros annulent les résultats sans formule et SUMPRODUCT additionne et renvoie un résultat final.
Pas des formules
Pour additionner les valeurs non générées par une formule, vous pouvez ajouter la fonction NOT comme ceci:
=SUMPRODUCT(sales*NOT(ISFORMULA(sales)))
Ici, la fonction NOT inverse les résultats TRUE FALSE renvoyés par la fonction ISFORMULA, qui filtre toutes les valeurs générées avec une formule.