Menu

СУММПРОИЗВ в Excel (эксель): умножить и сложить по условию

=СУММПРОИЗВ(B2:B6;C2:C6) умножает каждое количество на свою цену и складывает результаты. С условиями вроде (A2:A7="North")*C2:C7 она суммирует и считает там, где СУММЕСЛИМН не может: по месяцу, столбец со столбцом, с ИЛИ.

Каждая таблица на этой странице живая: измените число или формулу, и она пересчитается.

=СУММПРОИЗВ(B2:B6;C2:C6) умножает каждое количество из B на цену рядом с ним в C, а потом складывает результаты. Это функция СУММПРОИЗВ (по-английски SUMPRODUCT): она даёт сумму заказа в одной ячейке, без столбца с итогами по строкам. В таблице ниже формулы записаны по-английски, но их можно вводить и по-русски, с точкой с запятой.

Сумма заказа
F2
ABCDEF
1ItemQtyPriceLine totalTotal
2Pen4$1.50$6.00$30.70
3Notebook2$3.25$6.50$30.70
4Folder5$0.80$4.00
5Stapler1$7.90$7.90
6Marker3$2.10$6.30
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =СУММПРОИЗВ(B2:B6;C2:C6)

F2 и F3 показывают одну и ту же сумму, $30.70. Итоги по строкам в столбце D нужны только для того, чтобы показать, что делает СУММПРОИЗВ: 4 × 1,50, 2 × 3,25 и так далее, а затем СУММ. Измените количество, и обе суммы изменятся.

Синтаксис СУММПРОИЗВ

=SUMPRODUCT(array1, [array2], [array3], ...)
  • Каждый массив это диапазон или вычисление, которое его даёт, и все они должны быть одного размера, иначе СУММПРОИЗВ возвращает #ЗНАЧ! (по-английски #VALUE!, так ошибки показывают таблицы на этой странице).
  • Если массивов два или больше, значения на одинаковых позициях перемножаются, а затем произведения складываются.
  • С одним массивом функция просто его складывает, и на этом держатся формы с условиями ниже: в =СУММПРОИЗВ((A2:A7="North")*C2:C7) один массив, уже перемноженный.
  • Текст, переданный отдельным аргументом, считается нулём. Текст внутри вычисления с * вызывает #ЗНАЧ!.

СУММПРОИЗВ работает с массивами в любой версии Excel без Ctrl+Shift+Enter (Cmd+Shift+Enter на Mac), поэтому до появления СУММЕСЛИМН она была стандартным инструментом для сумм по условию и остаётся им для случаев, с которыми СУММЕСЛИМН не справляется.

СУММПРОИЗВ с условиями

Сравнение на диапазоне, A2:A7="North", возвращает по одному ИСТИНА или ЛОЖЬ на строку. Умножение на него оставляет строки, где ИСТИНА (×1), и обнуляет остальные (×0). Для И перемножьте два сравнения.

Сумма и подсчёт по условиям
F2
ABCDEF
1RegionProductSalesFormulaResult
2NorthApple120North sales230
3SouthPear45North Apple sales150
4NorthPear80Count North3
5EastApple55Count over 504
6SouthApple200Without --0
7NorthApple30
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =СУММПРОИЗВ((A2:A7="North")*C2:C7)

F2 складывает три строки North: 230. F3 перемножает два условия, поэтому строка учитывается, только когда выполняются оба: 150. Чтобы считать, а не складывать, уберите значения и превратите ИСТИНА/ЛОЖЬ в числа через -- (два знака минус): F4 считает 3 строки North. F6 показывает, зачем нужно --: СУММПРОИЗВ не складывает значения ИСТИНА, поэтому формула без него возвращает 0.

Первые четыре дают те же результаты, что СУММЕСЛИ, СУММЕСЛИМН и СЧЁТЕСЛИ. В следующем разделе СУММПРОИЗВ показывает, зачем она нужна.

Условия, которые СУММЕСЛИМН выразить не может

СУММЕСЛИМН сравнивает столбец с фиксированным критерием. Она не может взять месяц даты, сравнить два столбца друг с другом или умножить количество на цену перед сложением. СУММПРОИЗВ может, потому что каждое условие это обычное вычисление.

За пределами СУММЕСЛИМН
G2
ABCDEFG
1RegionDateTargetActualFormulaResult
2North2026-01-05100120February sales135
3South2026-01-126045Rows over target3
4North2026-02-039080North or East sales285
5East2026-02-185055Above target by75
6South2026-03-02150200
7North2026-03-204030
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =СУММПРОИЗВ((МЕСЯЦ(B2:B7)=2)*D2:D7)
  • G2 берёт МЕСЯЦ (MONTH) каждой даты и оставляет строки февраля: 80 + 55 = 135. Так складывается февраль любого года; добавьте *(ГОД(B2:B7)=2026), чтобы взять только один год.
  • G3 построчно сравнивает два столбца и считает строки, где Actual больше Target.
  • G4 это ИЛИ: сумма двух условий даёт 1, когда выполняется любое из них (и 2, когда оба, поэтому нужно >0). North или East: 285.
  • G5 складывает, на сколько каждая строка превысила свою цель, только для строк, где это случилось.

СУММПРОИЗВ для взвешенных сумм и средних

Количество, умноженное на цену, это взвешенная сумма, и к ней можно добавить условия. Та же идея, делённая на сумму весов, даёт взвешенное среднее: =СУММПРОИЗВ(B2:B6;C2:C6)/СУММ(B2:B6) это средняя цена за проданную единицу.

Выручка по регионам
G2
ABCDEFG
1RegionProductQtyPriceFormulaResult
2NorthApple10$1.20North revenue$31.00
3SouthPear4$1.50All revenue$61.00
4NorthPear6$1.50Average price per item$1.36
5EastApple8$1.20
6SouthApple12$1.20
7NorthPlum5$2.00
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =СУММПРОИЗВ((A2:A7="North")*C2:C7*D2:D7)

North продал 10 яблок по $1.20, 6 груш по $1.50 и 5 слив по $2.00, поэтому G2 показывает $31.00. Простое среднее цен считало бы, что слива продаётся так же часто, как яблоко; G4 взвешивает каждую цену по количеству.

Практика: выручка по условию

Ваша очередь: выручка South
G2
ABCDEFG
1RegionProductQtyPriceFormulaResult
2NorthApple10$1.20South revenue
3SouthPear4$1.50
4NorthPear6$1.50
5EastApple8$1.20
6SouthApple12$1.20
7NorthPlum5$2.00
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.

Ваша очередь: Посчитайте выручку South: количество, умноженное на цену, только для строк South. Напишите формулу в G2.

СУММПРОИЗВ или СУММЕСЛИМН, и две её ошибки

УсловиеСУММЕСЛИМНСУММПРОИЗВ
Столбец равен значению=СУММЕСЛИМН(C2:C7;A2:A7;"North")=СУММПРОИЗВ((A2:A7="North")*C2:C7)
Содержит текст=СУММЕСЛИМН(C2:C7;B2:B7;"*app*")=СУММПРОИЗВ(ЕЧИСЛО(ПОИСК("app";B2:B7))*C2:C7)
Месяц датынапрямую нельзя=СУММПРОИЗВ((МЕСЯЦ(B2:B7)=2)*D2:D7)
Столбец со столбцомнельзя=СУММПРОИЗВ(--(D2:D7>C2:C7))
Количество × ценанельзя=СУММПРОИЗВ(C2:C7;D2:D7)

Выбирайте СУММЕСЛИМН всегда, когда она справляется. Её легче читать, она быстрее на десятках тысяч строк и принимает целые столбцы. =СУММПРОИЗВ((A:A="North")*C:C) перемножает больше миллиона строк и возвращает #ЗНАЧ!, как только доходит до текста заголовка в C1, поэтому давайте СУММПРОИЗВ точные диапазоны вроде A2:A500.

Две ошибки, которые вы встретите:

  • #ЗНАЧ! из-за диапазонов разного размера. =СУММПРОИЗВ(B2:B6;C2:C7) не работает. Каждый диапазон должен охватывать одни и те же строки.
  • #ЗНАЧ! из-за текста в перемножаемом диапазоне. Заголовок или «n/a» внутри C2:C7 ломают (A2:A7="North")*C2:C7, потому что текст нельзя умножить. Начинайте диапазон ниже заголовка или передавайте значения отдельным аргументом: =СУММПРОИЗВ(--(A2:A7="North");C2:C7) считает текст в C нулём.

Часто задаваемые вопросы

Что делает СУММПРОИЗВ в Excel?

Она построчно перемножает диапазоны и складывает произведения. =СУММПРОИЗВ(B2:B6;C2:C6) это B2C2 + B3C3 + ... + B6*C6, например количество, умноженное на цену и сложенное в сумму заказа.

Как использовать СУММПРОИЗВ с условием?

Умножьте на сравнение: =СУММПРОИЗВ((A2:A7="North")*C2:C7) складывает C2:C7 для строк North. Сравнение даёт ИСТИНА или ЛОЖЬ, а при умножении они превращаются в 1 или 0.

Что означает -- в СУММПРОИЗВ?

Это два знака минус, которые превращают ИСТИНА и ЛОЖЬ в 1 и 0. =СУММПРОИЗВ(--(C2:C7>50)) считает значения больше 50. Без них СУММПРОИЗВ считает ИСТИНА/ЛОЖЬ нулями и возвращает 0.

Что выбрать: СУММПРОИЗВ или СУММЕСЛИМН?

Используйте СУММЕСЛИМН, когда её критерии могут выразить условие: её легче читать, и на больших диапазонах она быстрее. Используйте СУММПРОИЗВ, когда для условия нужно вычисление, например месяц даты, сравнение одного столбца с другим или количество, умноженное на цену.

Почему СУММПРОИЗВ возвращает #ЗНАЧ!?

Диапазоны разного размера (B2:B6 и C2:C7) или в диапазоне, который умножается через *, есть текст. Сделайте все диапазоны одного размера, а диапазоны с текстом передавайте отдельными аргументами: так текст считается нулём.

Иллюстрация языков программирования Coddy

Учитесь программировать с Coddy

НАЧАТЬ