Menu

Средневзвешенное в Excel (эксель): формула СУММПРОИЗВ

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

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

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

Взвешенная оценка за курс
F2
ABCDEF
1PartScoreWeightAverageResult
2Homework8520%Weighted81.2
3Quizzes7830%Plain AVERAGE80.75
4Midterm7220%
5Final8830%
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =СУММПРОИЗВ(B2:B5;C2:C5)/СУММ(C2:C5)

Взвешенная оценка 81,2, а простое СРЗНАЧ (AVERAGE) даёт 80,75, потому что считает домашние задания с весом 20% так же, как итоговый экзамен с весом 30%. Измените оценку за итоговый экзамен, и взвешенная оценка сдвинется сильнее, чем при таком же изменении оценки за домашние задания.

В Excel нет функции WEIGHTED.AVERAGE, поэтому стандартная формула это СУММПРОИЗВ, делённая на СУММ. В Google Таблицах есть AVERAGE.WEIGHTED(B2:B5,C2:C5).

Как работает формула средневзвешенного

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

Формула по шагам
D6
ABCD
1PartScoreWeightScore x weight
2Homework8520%17.0
3Quizzes7830%23.4
4Midterm7220%14.4
5Final8830%26.4
6Total100%81.2
7Weighted average81.2
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =СУММ(D2:D5)

Каждая часть даёт свою оценку, умноженную на вес: 85 × 20% это 17,0, 78 × 30% это 23,4 и так далее. В сумме получается 81,2. Веса в сумме дают 100%, поэтому деление на C6 здесь ничего не меняет, но именно оно сохраняет формулу верной, когда веса в сумме дают другое число.

Веса, которые в сумме не дают 100%

Веса не обязаны быть процентами. Средний балл (GPA) взвешивается по кредитным часам, средняя цена по количеству. Деление на СУММ весов работает с любой суммой.

Средний балл с учётом кредитов
F2
ABCDEF
1CourseGrade pointsCreditsAverageResult
2Math44Weighted GPA3.51
3History33Plain average3.48
4Biology3.74Total credits14
5Art2.72
6Lab41
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =СУММПРОИЗВ(B2:B6;C2:C6)/СУММ(C2:C6)

Без деления формула вернула бы сумму баллов, умноженных на кредиты, здесь 49,2, а не средний балл. С делением F2 показывает средний балл, взвешенный по 14 кредитам. Курсы на четыре кредита тянут среднее к своим оценкам, а лабораторная на один кредит его почти не двигает: замените B6 на 2 и посмотрите, насколько меньше меняется F2 по сравнению с F3.

Если веса это проценты, которые в сумме дают ровно 100%, =СУММПРОИЗВ(B2:B5;C2:C5) без деления даёт тот же результат. Всё равно оставляйте /СУММ(...): в тот день, когда кто-то изменит вес и сумма станет 105%, формула без деления окажется неверной, и ничто на листе об этом не скажет.

Средневзвешенное с условием

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

Средняя цена по региону
G2
ABCDEFG
1RegionProductPriceQtyRegionAverage price
2NorthApple$1.20100North$1.45
3SouthPear$1.5040South$1.36
4NorthPear$1.5060
5SouthApple$1.20120
6NorthPlum$2.0040
7SouthPlum$2.0020
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =СУММПРОИЗВ((A2:A7=F2)*C2:C7*D2:D7)/СУММЕСЛИ(A2:A7;F2;D2:D7)

North продал 100 яблок, 60 груш и 40 слив, поэтому его средняя цена $1.45, она ближе к цене яблок, чем было бы простое среднее трёх цен. Условие (A2:A7=F2) равно 1 в строках North и 0 в остальных, поэтому другие строки ничего не добавляют в числитель, а СУММЕСЛИ складывает в знаменателе только количество North.

Практика: средневзвешенная цена

Ваша очередь: средняя уплаченная цена
F2
ABCDEF
1BatchPriceQtyAverageResult
2Jan$4.20100Weighted price
3Feb$4.5040
4Mar$3.90250
5Apr$4.8010
6May$4.10120
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.

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

Ошибки, из-за которых средневзвешенное получается неверным

  • СРЗНАЧ произведений. =СРЗНАЧ(D2:D5) по столбцу оценка × вес делит на число строк, а не на веса, и даёт маленькое бессмысленное число. Делите СУММ произведений на СУММ весов.
  • Деление на количество вместо весов. =СУММПРОИЗВ(B2:B6;C2:C6)/СЧЁТ(B2:B6) верно, только когда каждый вес равен 1.
  • Диапазоны не совпадают по строкам. =СУММПРОИЗВ(B2:B6;C3:C7) сопоставляет каждое значение с весом следующей строки. Оба диапазона должны начинаться и заканчиваться на одних и тех же строках; диапазоны разного размера возвращают #ЗНАЧ! (по-английски #VALUE!).
  • Пустой вес. Пустой вес считается нулём, поэтому строка молча выпадает. Если отсутствующий вес должен останавливать расчёт, сначала проверьте =СЧИТАТЬПУСТОТЫ(C2:C6).
  • Среднее средних. Средние двух классов, 70 (10 учеников) и 90 (30 учеников), в среднем не дают 80. Взвесьте их по численности классов, и результат будет 85; на странице СРЗНАЧЕСЛИ та же ловушка с условиями.

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

Как посчитать средневзвешенное в Excel?

Используйте =СУММПРОИЗВ(B2:B5;C2:C5)/СУММ(C2:C5), где значения стоят в B, а веса в C. СУММПРОИЗВ умножает каждое значение на его вес и складывает результаты; деление на сумму весов превращает это в среднее.

Должны ли веса в сумме давать 100%?

Нет, если вы делите на СУММ весов. Кредиты 3, 4, 2 и 1 или веса 2, 1 и 1 работают так же. Только короткий вариант =СУММПРОИЗВ(B2:B5;C2:C5) без деления требует, чтобы веса в сумме давали ровно 100%.

Есть ли в Excel функция для средневзвешенного?

Нет. Встроенной функции средневзвешенного в Excel нет, поэтому стандартная формула это сочетание СУММПРОИЗВ и СУММ. В Google Таблицах то же самое делает AVERAGE.WEIGHTED(B2:B5,C2:C5).

Как посчитать средневзвешенное с условием?

Добавьте условие в СУММПРОИЗВ, а веса сложите через СУММЕСЛИ: =СУММПРОИЗВ((A2:A7="North")*B2:B7*C2:C7)/СУММЕСЛИ(A2:A7;"North";C2:C7).

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

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

НАЧАТЬ