
Обща формула
=SUMPRODUCT(range*ISFORMULA(range))
Обобщение
За да сумирате резултатите само от формули, можете да използвате функциите SUMPRODUCT и ISFORMULA. В показания пример формулата във F6 е:
=SUMPRODUCT(sales*ISFORMULA(sales))
където "продажби" е наименуваният диапазон C5: C13, стойностите в C5: C9 са кодирани твърдо, а стойностите в C10: C13 се генерират с формули.
Обяснение
Тази формула използва логическа логика за "филтриране" на числата в колона C преди сумиране с функцията SUMPRODUCT. Когато формулата се оценява, стойностите в посочения диапазон "продажби" се разширяват в масив:
(925;1038;1105;1210;1250;1313;1379;1448;1520)
За да филтрира всякакви стойности, които не са създадени от формула, функцията ISFORMULA е да създаде масив от TRUE FALSE стойности като тази:
=ISFORMULA(sales) =(FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE)
Когато тези два масива се умножат помежду си, математическата операция принуждава стойностите TRUE и FALSE към 1 и 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))
Нулите отменят резултатите без формула, а SUMPRODUCT сумира и връща окончателен резултат.
Не формули
За да сумирате стойности, които не са генерирани от формула, можете да добавите функцията NOT по следния начин:
=SUMPRODUCT(sales*NOT(ISFORMULA(sales)))
Тук функцията NOT обръща резултатите TRUE FALSE, върнати от функцията ISFORMULA, която филтрира всички стойности, генерирани с формула.