Функция СУММПРОИЗВ в Excel перемножает соответствующие элементы диапазонов и складывает произведения: =СУММПРОИЗВ(B2:B10;C2:C10) — это сумма «количество × цена» по всем строкам без вспомогательного столбца. Главное её применение — подсчёт сумм и количества с условиями прямо внутри формулы: =СУММПРОИЗВ((A2:A10="Москва")*(C2:C10>100)*D2:D10). Условия перемножаются (это И) или складываются (это ИЛИ), а формулу не нужно вводить через Ctrl+Shift+Enter. На английском функция называется SUMPRODUCT.

| Раздел функций | Математические |
| Название и описание на английском | SUMPRODUCT |
| Волатильность | Не волатильная |
| Похожие функции | СУММ, СУММЕСЛИ, ПРОИЗВЕД |
| Похожие процедуры | Сводные таблицы |
Что делает функция СУММПРОИЗВ
Эта функция использует как минимум два диапазона или массива, перемножая и суммируя их элементы.
Значения в первом диапазоне умножаются на соответствующие по порядку значения во втором и так далее.
Сумма всех таких произведений является результатом расчета.
Наиболее часто функция используется как аналог функции СУММЕСЛИ с множественными условиями.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Город | Канал | Сумма | Условие | Итог | |
| 2 | Москва | Поиск | 150 | Москва | 330=СУММПРОИЗВ((A2:A6="Москва")*C2:C6) | |
| 3 | Казань | РСЯ | 90 | Москва и > 100 | 260=СУММПРОИЗВ((A2:A6="Москва")*(C2:C6>100)*C2:C6) | |
| 4 | Москва | РСЯ | 70 | Москва ИЛИ Казань | 420=СУММПРОИЗВ(((A2:A6="Москва")+(A2:A6="Казань"))*C2:C6) | |
| 5 | Тула | Поиск | 60 | Строк Москва | 3=СУММПРОИЗВ(--(A2:A6="Москва")) | |
| 6 | Москва | Поиск | 110 |
Сравнение (A2:A6="Москва") даёт массив ИСТИНА/ЛОЖЬ; при умножении он становится 1 и 0 и «обнуляет» неподходящие строки. Умножение условий — И, сложение — ИЛИ. Двойной минус превращает ИСТИНА/ЛОЖЬ в 1/0, чтобы просто посчитать строки.
В английском Excel: =SUMPRODUCT((A2:A6="Москва")*(C2:C6>100)*C2:C6)
- Преимущество СУММПРОИЗВ перед сводными таблицами заключается в том, что в сводных таблицах фильтр для построения среза всегда точное соответствие (как в примере 1). А "фильтр по подписи", если выводить фильтруемые значения в строки, позволяет фильтровать только по одному условию. СУММПРОИЗВ позволяет использовать все варианты как строкового сравнения (содержит, начинается с, заканчивается на, совпадает), так и численного (больше, меньше, равно, не равно, больше или равно, меньше или равно).
- Второе преимущество СУММПРОИЗВ перед сводными таблицами в том, что один критерий фильтрации в сводных таблицах нельзя использовать дважды. СУММПРОИЗВ позволяет обращаться к одному и тому же столбцу многократно.
- Преимущество СУММПРОИЗВ перед функцией СУММЕСЛИМН в том, что условная логика СУММЕСЛИМН - строгое выполнение всех условий, по типу "И". Возможность использовать любые логические операции над массивами булевых значений дает полнейшую свободу действий по совмещению условий в любых логических комбинациях - И, ИЛИ, ЕСЛИ, НЕ.
СУММПРОИЗВ: формат результата и исходных данных
Диапазоны должны быть однонаправленными, содержать одинаковое количество элементов и иметь одинаковую размерность по вертикали или горизонтали. Конкретные адреса диапазонов при этом не имеют значения.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | A | B | Текст | Формула | Результат | |
| 2 | 2 | 5 | шт | одинаковые диапазоны | 26=СУММПРОИЗВ(A2:A4;B2:B4) | |
| 3 | 4 | 4 | 3 | разный размер | #ЗНАЧ!=СУММПРОИЗВ(A2:A4;B2:B3) | |
| 4 | 1 | 0 | текст считается нулём | 12=СУММПРОИЗВ(A2:A4;C2:C4) |
Диапазоны должны совпадать по размеру, иначе #ЗНАЧ!. Текст и пустые ячейки при перемножении через «;» считаются нулями: 2×0 + 4×3 + 1×0 = 12.
Диапазоны могут иметь несколько столбцов и строк одновременно. Обычно используются вертикальные диапазоны шириной 1 столбец.
Синтаксис функции СУММПРОИЗВ
=СУММПРОИЗВ(массив1;[массив2];[массив3];...)
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Товар | Кол-во | Цена | Выручка | |
| 2 | Кресло | 3 | 4500 | 31200=СУММПРОИЗВ(B2:B5;C2:C5) | |
| 3 | Стол | 2 | 6200 | 31200=СУММ(B2:B5*C2:C5) | |
| 4 | Стул | 10 | 450 | ||
| 5 | Лампа | 1 | 800 |
3×4500 + 2×6200 + 10×450 + 1×800 = 31 200. СУММ с умножением массивов даёт то же, но в Excel 2019 и старше требует Ctrl+Shift+Enter, а СУММПРОИЗВ — нет.
В английском Excel: =SUMPRODUCT(B2:B5,C2:C5)
Средневзвешенное значение и подсчёт с учётом регистра
СУММПРОИЗВ — стандартный способ посчитать средневзвешенную величину: сумма произведений значений на веса, делённая на сумму весов. А в связке с СОВПАД она считает ячейки с учётом регистра, чего не умеет СЧЁТЕСЛИ.
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | Партия | Цена | Кол-во | Средневзв. цена | Код | «ABC» точно | ||
| 2 | 1 | 100 | 10 | 112,5=СУММПРОИЗВ(B2:B4;C2:C4)/СУММ(C2:C4) | ABC | 2=СУММПРОИЗВ(--СОВПАД(G2:G5;"ABC")) | ||
| 3 | 2 | 120 | 5 | abc | ||||
| 4 | 3 | 130 | 5 | ABC | ||||
| 5 | Abc |
(100×10 + 120×5 + 130×5) / 20 = 112,5 — обычное СРЗНАЧ дало бы 116,67. СОВПАД сравнивает с учётом регистра, поэтому найдено 2 «ABC» из 4 вариантов.
В английском Excel: =SUMPRODUCT(B2:B4,C2:C4)/SUM(C2:C4)
Примеры формул с функцией СУММПРОИЗВ
Рассмотрим подробно сложный пример с 4 условиями.
Задача маркетолога - посчитать сумму по четырем условиям:
- Дата начала недели - 13 апреля или позднее
- В названии кампании присутствует слово Brand
- При этом кампания заканчивается на BY (Белоруссия)
- Или заканчивается на UA (Украина)
Строки, удовлетворяющие всем четырем условиям, выделены зеленым цветом. Как составить формулу, которая учла бы только их?
Формулу можно наблюдать на скриншоте в ячейке H9.

Фактически она является суммой произведения двух диапазонов - массива чисел D3:D34 и массива нулей и единиц. Рассмотрим ее поближе:

Массив нулей и единиц рождается произведением трех формул массива, третья из которых получается сложением двух других формул массива и применением функции ЗНАК.
В каждой строке указано одно из четырех условий, на основе которых эти формулы создаются:
(ЗНАЧЕН(ЛЕВСИМВ($A$3:$A$34;8))>=$H$2)
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Неделя | Кампания | Клики | Условие 1: дата недели ≥ 13.04 | Параметр | Значение | |
| 2 | 06.04.20 - 12.04.20 | Brand_Search_BY | 120 | ЛОЖЬ=ЗНАЧЕН(ЛЕВСИМВ(A2;8))>=$G$2 | С даты | 13.04.20 | |
| 3 | 13.04.20 - 19.04.20 | Brand_Search_BY | 150 | ИСТИНА=ЗНАЧЕН(ЛЕВСИМВ(A3;8))>=$G$2 | Слово | Brand | |
| 4 | 13.04.20 - 19.04.20 | Generic_Search_UA | 90 | ИСТИНА=ЗНАЧЕН(ЛЕВСИМВ(A4;8))>=$G$2 | Конец 1 | BY | |
| 5 | 20.04.20 - 26.04.20 | Brand_RSY_UA | 70 | ИСТИНА=ЗНАЧЕН(ЛЕВСИМВ(A5;8))>=$G$2 | Конец 2 | UA | |
| 6 | 20.04.20 - 26.04.20 | Brand_Search_RU | 60 | ИСТИНА=ЗНАЧЕН(ЛЕВСИМВ(A6;8))>=$G$2 | |||
| 7 | 27.04.20 - 03.05.20 | brand_search_ua | 110 | ИСТИНА=ЗНАЧЕН(ЛЕВСИМВ(A7;8))>=$G$2 |
ЛЕВСИМВ берёт «13.04.20», ЗНАЧЕН превращает текст в дату, после чего её можно сравнить с G2.
это выражение создает массив булевых значений ИСТИНА и ЛОЖЬ. Функция ЛЕВСИМВ($A$3:$A$34;8) извлекает из диапазона дат в столбце A первые 8 символов, обозначающие дату, а функция ЗНАЧЕН преобразует их в числовой формат, иначе сравнение с ячейкой H2 не будет происходить корректно, т.к. функция ЛЕВСИМВ - текстовая, и возвращает строку.
НЕ(ЕОШ(ПОИСК($H$4;$B$3:$B$34)))
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Неделя | Кампания | Клики | Условие 2: в названии есть «Brand» | Параметр | Значение | |
| 2 | 06.04.20 - 12.04.20 | Brand_Search_BY | 120 | ИСТИНА=НЕ(ЕОШ(ПОИСК($G$3;B2))) | С даты | 13.04.20 | |
| 3 | 13.04.20 - 19.04.20 | Brand_Search_BY | 150 | ИСТИНА=НЕ(ЕОШ(ПОИСК($G$3;B3))) | Слово | Brand | |
| 4 | 13.04.20 - 19.04.20 | Generic_Search_UA | 90 | ЛОЖЬ=НЕ(ЕОШ(ПОИСК($G$3;B4))) | Конец 1 | BY | |
| 5 | 20.04.20 - 26.04.20 | Brand_RSY_UA | 70 | ИСТИНА=НЕ(ЕОШ(ПОИСК($G$3;B5))) | Конец 2 | UA | |
| 6 | 20.04.20 - 26.04.20 | Brand_Search_RU | 60 | ИСТИНА=НЕ(ЕОШ(ПОИСК($G$3;B6))) | |||
| 7 | 27.04.20 - 03.05.20 | brand_search_ua | 110 | ИСТИНА=НЕ(ЕОШ(ПОИСК($G$3;B7))) |
ПОИСК не различает регистр, поэтому «brand_search_ua» тоже подходит. В Excel 2010+ то же короче: ЕЧИСЛО(ПОИСК($G$3;B2)).
- это выражение также создает массив булевых значений. Функция ПОИСК ищет внутри каждой ячейки столбца слово "BRAND", если оно не найдено, возвращается ошибка, а если найдено - позиция его первого символа в строке. Функцией ЕОШ мы превращаем ошибки в единицы, а их отсутствия - в нули. И далее функцией отрицания НЕ получаем нужный нам массив.
Функций "Заканчивается на" в Excel нет, но можно делать простую проверку - если последние символы в строке совпадают со словом, что это, как не вхождение? Эту операцию и производит выражение
(ПРАВСИМВ($B$3:$B$34;ДЛСТР($J$2))=$J$2)
Тут нам помогают функции ДЛСТР и ПРАВСИМВ. Проверяя, совпадают ли последние 2 символа с ячейкой J2, мы также возвращаем массив булевых значений.
Четвертое условие аналогично третьему, как и его выражение:
(ПРАВСИМВ($B$3:$B$34;ДЛСТР($J$4))=$J$4)
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Неделя | Кампания | Клики | Условия 3–4: заканчивается на BY или UA | Параметр | Значение | |
| 2 | 06.04.20 - 12.04.20 | Brand_Search_BY | 120 | ИСТИНА=ЗНАК((ПРАВСИМВ(B2;ДЛСТР($G$4))=$G$4)+(ПРАВСИМВ(B2;ДЛСТР($G$5))=$G$5))=1 | С даты | 13.04.20 | |
| 3 | 13.04.20 - 19.04.20 | Brand_Search_BY | 150 | ИСТИНА=ЗНАК((ПРАВСИМВ(B3;ДЛСТР($G$4))=$G$4)+(ПРАВСИМВ(B3;ДЛСТР($G$5))=$G$5))=1 | Слово | Brand | |
| 4 | 13.04.20 - 19.04.20 | Generic_Search_UA | 90 | ИСТИНА=ЗНАК((ПРАВСИМВ(B4;ДЛСТР($G$4))=$G$4)+(ПРАВСИМВ(B4;ДЛСТР($G$5))=$G$5))=1 | Конец 1 | BY | |
| 5 | 20.04.20 - 26.04.20 | Brand_RSY_UA | 70 | ИСТИНА=ЗНАК((ПРАВСИМВ(B5;ДЛСТР($G$4))=$G$4)+(ПРАВСИМВ(B5;ДЛСТР($G$5))=$G$5))=1 | Конец 2 | UA | |
| 6 | 20.04.20 - 26.04.20 | Brand_Search_RU | 60 | ЛОЖЬ=ЗНАК((ПРАВСИМВ(B6;ДЛСТР($G$4))=$G$4)+(ПРАВСИМВ(B6;ДЛСТР($G$5))=$G$5))=1 | |||
| 7 | 27.04.20 - 03.05.20 | brand_search_ua | 110 | ИСТИНА=ЗНАК((ПРАВСИМВ(B7;ДЛСТР($G$4))=$G$4)+(ПРАВСИМВ(B7;ДЛСТР($G$5))=$G$5))=1 |
Сложение двух проверок — это ИЛИ; ЗНАК превращает 2 в 1. Сравнение «=» тоже не учитывает регистр, поэтому «ua» = «UA».
Условная логика ИЛИ воспроизводится методом сложения двух булевых массивов. При этом они становятся числами. ИСТИНА+ЛОЖЬ (и наоборот) дают 1, ЛОЖЬ+ЛОЖЬ дают 0, ИСТИНА+ИСТИНА дают 2. Чтобы не исказить данные, мы используем функцию ЗНАК - она возвращает для положительных чисел 1, а для 0 - 0. Таким образом, мы получаем массив нулей и единиц на основе двух булевых массивов.
Произведение трех массивов дает нам единый массив нулей и единиц, умножая который на значения показов, кликов и скачиваний, мы получаем суммы отфильтрованных таким образом значений. Числа, где условия не соблюдены, "уничтожаются" нулями, а числа, где соблюдены - умножаются на 1 и складываются.
У наблюдательного читателя может возникнуть вопрос, почему мы не пользуемся функцией ИЛИ для объединения последних двух булевых массивов. Ответ: к сожалению, она не сочетает массивы попарно (как и функция И), а рассматривает каждую ячейку массива как равноправный элемент.
Именно поэтому используются арифметические функции.
- вместо И - умножение
- а вместо ИЛИ - сложение + функция ЗНАК.
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | Неделя | Кампания | Клики | Все условия | Параметр | Значение | Итого кликов | |
| 2 | 06.04.20 - 12.04.20 | Brand_Search_BY | 120 | 0=(ЗНАЧЕН(ЛЕВСИМВ(A2;8))>=$G$2)*НЕ(ЕОШ(ПОИСК($G$3;B2)))*ЗНАК((ПРАВСИМВ(B2;ДЛСТР($G$4))=$G$4)+(ПРАВСИМВ(B2;ДЛСТР($G$5))=$G$5)) | С даты | 13.04.20 | 330=СУММПРОИЗВ(C2:C7*(ЗНАЧЕН(ЛЕВСИМВ(A2:A7;8))>=G2)*НЕ(ЕОШ(ПОИСК(G3;B2:B7)))*ЗНАК((ПРАВСИМВ(B2:B7;ДЛСТР(G4))=G4)+(ПРАВСИМВ(B2:B7;ДЛСТР(G5))=G5))) | |
| 3 | 13.04.20 - 19.04.20 | Brand_Search_BY | 150 | 1=(ЗНАЧЕН(ЛЕВСИМВ(A3;8))>=$G$2)*НЕ(ЕОШ(ПОИСК($G$3;B3)))*ЗНАК((ПРАВСИМВ(B3;ДЛСТР($G$4))=$G$4)+(ПРАВСИМВ(B3;ДЛСТР($G$5))=$G$5)) | Слово | Brand | ||
| 4 | 13.04.20 - 19.04.20 | Generic_Search_UA | 90 | 0=(ЗНАЧЕН(ЛЕВСИМВ(A4;8))>=$G$2)*НЕ(ЕОШ(ПОИСК($G$3;B4)))*ЗНАК((ПРАВСИМВ(B4;ДЛСТР($G$4))=$G$4)+(ПРАВСИМВ(B4;ДЛСТР($G$5))=$G$5)) | Конец 1 | BY | ||
| 5 | 20.04.20 - 26.04.20 | Brand_RSY_UA | 70 | 1=(ЗНАЧЕН(ЛЕВСИМВ(A5;8))>=$G$2)*НЕ(ЕОШ(ПОИСК($G$3;B5)))*ЗНАК((ПРАВСИМВ(B5;ДЛСТР($G$4))=$G$4)+(ПРАВСИМВ(B5;ДЛСТР($G$5))=$G$5)) | Конец 2 | UA | ||
| 6 | 20.04.20 - 26.04.20 | Brand_Search_RU | 60 | 0=(ЗНАЧЕН(ЛЕВСИМВ(A6;8))>=$G$2)*НЕ(ЕОШ(ПОИСК($G$3;B6)))*ЗНАК((ПРАВСИМВ(B6;ДЛСТР($G$4))=$G$4)+(ПРАВСИМВ(B6;ДЛСТР($G$5))=$G$5)) | ||||
| 7 | 27.04.20 - 03.05.20 | brand_search_ua | 110 | 1=(ЗНАЧЕН(ЛЕВСИМВ(A7;8))>=$G$2)*НЕ(ЕОШ(ПОИСК($G$3;B7)))*ЗНАК((ПРАВСИМВ(B7;ДЛСТР($G$4))=$G$4)+(ПРАВСИМВ(B7;ДЛСТР($G$5))=$G$5)) |
Столбец D — произведение трёх условий: 1 только там, где выполнены все. СУММПРОИЗВ умножает клики на эти единицы и нули и складывает: 150 + 70 + 110 = 330. Отдельный столбец D не нужен — он показан для наглядности.
В английском Excel: =SUMPRODUCT(C2:C7*(VALUE(LEFT(A2:A7,8))>=G2)*NOT(ISERR(SEARCH(G3,B2:B7)))*SIGN((RIGHT(B2:B7,LEN(G4))=G4)+(RIGHT(B2:B7,LEN(G5))=G5)))
Другие примеры с СУММПРОИЗВ:
Найти повторяющиеся значения в Excel
Почему СУММПРОИЗВ возвращает ошибку или 0
- #ЗНАЧ!. Диапазоны разного размера или в одном из них есть ошибка (#Н/Д, #ДЕЛ/0!).
- Результат 0. Условие сравнивается с числом, сохранённым как текст, или условия ИСТИНА/ЛОЖЬ переданы через «;» без умножения — используйте * или --.
- Формула тормозит. СУММПРОИЗВ по целым столбцам (A:A) пересчитывает миллион строк — ограничьте диапазон.
- ИЛИ работает неправильно. Функции И/ИЛИ не работают с массивами построчно — используйте умножение и сложение.
- Текст в диапазоне умножения через * даёт #ЗНАЧ!. Через «;» текст считается нулём, через * — ошибкой.
Функция СУММПРОИЗВ — частые вопросы
Что делает СУММПРОИЗВ в Excel?
Перемножает элементы массивов попарно и суммирует результат: =СУММПРОИЗВ(B2:B10;C2:C10).
Как СУММПРОИЗВ называется на английском?
SUMPRODUCT.
Как сделать СУММПРОИЗВ с условием?
Перемножьте условия и диапазон суммирования: =СУММПРОИЗВ((A2:A10="Москва")*C2:C10).
Чем СУММПРОИЗВ лучше СУММЕСЛИМН?
СУММПРОИЗВ принимает любые выражения в условиях — части текста, ИЛИ, вычисления над датами, учёт регистра. СУММЕСЛИМН быстрее, но работает только с готовыми значениями ячеек.
Нужно ли нажимать Ctrl+Shift+Enter?
Нет, СУММПРОИЗВ обрабатывает массивы сама в любой версии Excel.
Суммировать и считать по сложным условиям, включая «содержит» и «заканчивается на», можно без длинных формул с !SEMTools — в пару кликов.
!SEMTools решает эту и сотни других задач в пару кликов!
Итоги: функция СУММПРОИЗВ в Excel
| Задача | Формула |
|---|---|
| Сумма произведений | =СУММПРОИЗВ(B2:B10;C2:C10) |
| Сумма с условием | =СУММПРОИЗВ((A2:A10="Москва")*C2:C10) |
| Условие ИЛИ | =СУММПРОИЗВ(((A2:A10="А")+(A2:A10="Б"))*C2:C10) |
| Количество | =СУММПРОИЗВ(--(A2:A10="Москва")) |
| Средневзвешенное | =СУММПРОИЗВ(B2:B10;C2:C10)/СУММ(C2:C10) |
Надеюсь, на этой странице вы нашли то, что искали. СУММПРОИЗВ — универсальный инструмент для расчётов с условиями: умножение — это И, сложение — ИЛИ.