
Общая формула
=SUMPRODUCT(range*ISFORMULA(range))
Резюме
Чтобы суммировать результаты только по формулам, вы можете использовать функции СУММПРОИЗВ и ISFORMULA. В показанном примере формула в F6:
=SUMPRODUCT(sales*ISFORMULA(sales))
где «продажи» - именованный диапазон C5: C13, значения в C5: C9 жестко запрограммированы, а значения в C10: C13 генерируются с помощью формул.
Объяснение
В этой формуле используется логическая логика для «фильтрации» чисел в столбце C перед суммированием с помощью функции СУММПРОИЗВ. Когда формула вычисляется, значения в названном диапазоне "продажи" расширяются в массив:
(925;1038;1105;1210;1250;1313;1379;1448;1520)
Чтобы отфильтровать любые значения, не созданные формулой, функция ISFORMULA должна создать массив значений ИСТИНА ЛОЖЬ, подобный этому:
=ISFORMULA(sales) =(FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE)
Когда эти два массива умножаются друг на друга, математическая операция приводит значения ИСТИНА и ЛОЖЬ к 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(sales*NOT(ISFORMULA(sales)))
Здесь функция НЕ меняет местами результаты ИСТИНА ЛОЖЬ, возвращаемые функцией ISFORMULA, которая отфильтровывает любые значения, сгенерированные с помощью формулы.