
Generieke formule
=SUMPRODUCT(range*ISFORMULA(range))
Samenvatting
Als u alleen resultaten van formules wilt optellen, kunt u de functies SOMPRODUCT en ISFORMULA gebruiken. In het getoonde voorbeeld is de formule in F6:
=SUMPRODUCT(sales*ISFORMULA(sales))
waar "sales" het benoemde bereik C5: C13 is, waarden in C5: C9 zijn hard gecodeerd en waarden in C10: C13 worden gegenereerd met formules.
Uitleg
Deze formule gebruikt booleaanse logica om de getallen in kolom C te "filteren" voordat ze worden opgeteld met de functie SOMPRODUCT. Wanneer de formule wordt geëvalueerd, worden waarden in het benoemde bereik "verkoop" uitgebreid tot een matrix:
(925;1038;1105;1210;1250;1313;1379;1448;1520)
Om waarden uit te filteren die niet door een formule zijn gemaakt, is de functie ISFORMULA het maken van een array van TRUE FALSE-waarden als volgt:
=ISFORMULA(sales) =(FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE)
Wanneer deze twee arrays met elkaar worden vermenigvuldigd, dwingt de wiskundige bewerking de WAAR en ONWAAR waarden naar enen en nullen:
=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))
De nullen heffen niet-formuleresultaten op, en SOMPRODUCT telt op en retourneert een eindresultaat.
Geen formules
Om waarden op te tellen die niet door een formule zijn gegenereerd, kunt u de functie NOT als volgt toevoegen:
=SUMPRODUCT(sales*NOT(ISFORMULA(sales)))
Hier keert de NIET-functie de TRUE FALSE-resultaten om die worden geretourneerd door de ISFORMULA-functie, die alle waarden filtert die zijn gegenereerd met een formule.