KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

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

АвторКеллиДата изменения

Взвешенные средние используются в сценариях, где отдельные элементы вносят неравный вклад в общий результат. Например, при анализе списка покупок с указанием цен, весов и количества товаров стандартная функция СРЗНАЧ (AVERAGE) в Excel рассчитает лишь простое арифметическое среднее, игнорируя частоту или значимость каждого элемента. Однако во многих бизнес- и бюджетных задачах требуется именно взвешенное среднее — например, средняя цена за единицу с учётом количества или веса, — чтобы влияние каждого элемента соответствовало его реальной значимости. В этой статье рассматриваются способы расчёта взвешенных средних в Excel, включая случаи с заданными критериями, а также дополнительные методы с использованием VBA и сводных таблиц для решения более сложных или динамичных задач.

Расчёт взвешенного среднего в Excel

Расчёт взвешенного среднего при выполнении заданных критериев в Excel

Код VBA — автоматизация расчёта взвешенного среднего для динамических диапазонов или нескольких критериев


Расчёт взвешенного среднего в Excel

Представьте, что у вас есть список покупок, как на скриншоте ниже. Хотя функция Excel СРЗНАЧ (AVERAGE) покажет среднюю цену без учёта веса или количества, более точным решением в таких случаях будет расчёт взвешенного среднего. Он лучше отражает реальную стоимость за единицу, поскольку придаёт элементам с большим весом или частотой большее влияние на итоговый результат.

снимок экрана с исходными данными

Для вычисления взвешенной средней цены используйте комбинацию функций СУММПРОИЗВи СУММ, как показано ниже:

Выберите пустую ячейку, например F2, и введите следующую формулу:

=SUMPRODUCT(C2:C18,D2:D18)/SUM(C2:C18)

и нажмите клавишу Enter, чтобы получить результат.

снимок экрана, показывающий, как использовать формулу для вычисления средневзвешенного значения

Примечание: В этой формуле C2:C18 относится к столбцу «Вес», а D2:D18 — к столбцу «Цена». При необходимости скорректируйте эти диапазоны в соответствии со структурой ваших данных. Функция СУММПРОИЗВ перемножает каждый вес на соответствующую цену и суммирует результаты, а функция СУММ вычисляет сумму весов, обеспечивая корректное значение взвешенного среднего. Убедитесь, что диапазоны имеют одинаковую длину и в ваших данных отсутствуют несоответствия или пустые ячейки — иначе это может привести к ошибкам в расчётах.

Если вычисленное взвешенное среднее отображает слишком много или слишком мало десятичных знаков по вашему усмотрению, выберите ячейку, затем нажмите кнопку Увеличить разрядностьснимок экрана кнопки «Уменьшить разрядность» или Уменьшить разрядность на вкладке снимок экрана кнопки «Уменьшить разрядность»Главная , чтобы при необходимости скорректировать отображаемое количество десятичных знаков.

снимок экрана выбора одного из десятичных форматов

Если возникает ошибка, например #ЗНАЧ!, дважды проверьте, что каждая ссылочная ячейка содержит числовое значение и что диапазоны согласованы. Кроме того, избегайте включения строки заголовков в диапазон вычислений, чтобы обеспечить точность результатов. При работе с крупными наборами данных рекомендуется использовать именованные диапазоны для повышения читаемости и удобства обслуживания.


Расчёт взвешенного среднего при выполнении заданных критериев в Excel

Предыдущая формула вычисляет взвешенную среднюю цену для всех элементов. На практике вам может понадобиться взвешенное среднее для определённых категорий, например для расчёта взвешенной средней цены только для яблок. В таких случаях можно усовершенствовать формулу, добавив условие на основе заданных критериев.

Для этого выберите пустую ячейку, например F8, и введите следующую формулу:

=SUMPRODUCT((B2:B18="Apple")*C2:C18*D2:D18)/SUMIF(B2:B18,"Apple",C2:C18)

Затем нажмите клавишу Enter, чтобы рассчитать взвешенное среднее по вашим конкретным критериям. Формула перемножает пары «вес–цена» только для тех элементов, которые соответствуют условию (в данном случае — «Яблоко»), суммирует полученные значения и делит результат на сумму весов именно для этого элемента.

снимок экрана, показывающий, как использовать формулу для вычисления средневзвешенного значения при выполнении заданных условий

Примечание: Здесь B2:B18 — это столбец «Фрукт», C2:C18 — «Вес», а D2:D18 — «Цена». При необходимости замените «Яблоко» на другой элемент. Этот метод отлично подходит для фильтрации по одному условию; если же требуется фильтрация по нескольким критериям (например, тип фрукта и поставщик), может понадобиться вспомогательный столбец или более сложная формула.

После применения формулы вы можете скорректировать количество десятичных знаков для наглядности. Выделите ячейку с результатом и используйте кнопки Увеличить разрядностьснимок экрана кнопки «Уменьшить разрядность2» или Уменьшить разрядностьснимок экрана кнопки «Уменьшить разрядность2» на вкладке Главная, чтобы изменить отображаемое количество десятичных знаков.

снимок экрана выбора одного из десятичных форматов2

Если формула возвращает неожиданный результат, убедитесь, что в целевом диапазоне есть совпадения по критерию, и проверьте наличие пустых ячеек или текстовых значений в столбцах, предназначенных для чисел.


Код VBA — автоматизация расчёта взвешенного среднего для динамических Диапазон или нескольких критериев

В некоторых ситуациях вам может часто требоваться вычисление взвешенных средних для диапазонов, размер которых меняется, содержит пропущенные значения или нуждается в гибкой фильтрации — например, при одновременном применении нескольких критериев. Вместо ручного обновления формул или диапазонов автоматизация расчётов с помощью макроса VBA поможет сэкономить время и минимизировать риск ошибок, особенно при работе с большими или регулярно обновляемыми наборами данных.

Вот как создать и использовать макрос VBA для расчёта взвешенных средних:

1. Нажмите Разработчик > Visual Basic(или нажмите)Alt + F11), чтобы открыть окно редактора Microsoft Visual Basic для приложений. Затем выберите Вставка > Модуль и вставьте приведённый ниже код в новое окно модуля:

Sub WeightedAverageVBA()
    Dim rngCriteria As Range
    Dim rngWeight As Range
    Dim rngValue As Range
    Dim criteriaStr As String
    Dim totalWeighted As Double
    Dim totalWeight As Double
    Dim i As Long
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set rngCriteria = Application.InputBox("Select the range for criteria (optional, press Cancel to skip):", xTitleId, Type:=8)
    criteriaStr = Application.InputBox("Enter criteria for filtering (leave blank for all):", xTitleId, Type:=2)
    Set rngWeight = Application.InputBox("Select the Weight (numeric) range:", xTitleId, Type:=8)
    Set rngValue = Application.InputBox("Select the Value (e.g. Price) range:", xTitleId, Type:=8)
    
    totalWeighted = 0
    totalWeight = 0
    
    If rngCriteria Is Nothing Or criteriaStr = "" Then
        For i = 1 To rngWeight.Cells.Count
            If IsNumeric(rngWeight.Cells(i).Value) And IsNumeric(rngValue.Cells(i).Value) Then
                totalWeighted = totalWeighted + rngWeight.Cells(i).Value * rngValue.Cells(i).Value
                totalWeight = totalWeight + rngWeight.Cells(i).Value
            End If
        Next i
    Else
        For i = 1 To rngWeight.Cells.Count
            If rngCriteria.Cells(i).Value = criteriaStr Then
                If IsNumeric(rngWeight.Cells(i).Value) And IsNumeric(rngValue.Cells(i).Value) Then
                    totalWeighted = totalWeighted + rngWeight.Cells(i).Value * rngValue.Cells(i).Value
                    totalWeight = totalWeight + rngWeight.Cells(i).Value
                End If
            End If
        Next i
    End If
    
    If totalWeight = 0 Then
        MsgBox "Weighted average cannot be calculated: total weight is zero.", vbExclamation, xTitleId
    Else
        MsgBox "Weighted average: " & totalWeighted / totalWeight, vbInformation, xTitleId
    End If
End Sub

2. Нажмите F5(или кнопку)Кнопка «Выполнить» Выполнить), чтобы запустить макрос.
Вам последовательно предложат выбрать диапазоны: диапазон критериев (его можно пропустить, если он не требуется), диапазон весов и диапазон значений. Вы также можете указать конкретные критерии для фильтрации расчёта или оставить поле пустым, чтобы учесть все данные. Макрос поддерживает динамические диапазоны, что делает его удобным, если ваша таблица регулярно расширяется или изменяется.

В завершение вы получите окно сообщения с результатом расчёта взвешенного среднего.

Советы:

  • Такой подход автоматизирует повторяющийся анализ взвешенных средних и легко масштабируется для обработки дополнительных параметров фильтрации или вывода.
  • Убедитесь, что выбранные диапазоны имеют одинаковую длину и согласованные типы данных.
  • Включите базовую обработку ошибок, как показано (например, на случай, если допустимые веса не найдены или их сумма равна нулю).
  • Если вы хотите применить расчёт только к отфильтрованным или видимым строкам, вы можете дополнительно улучшить код, используя специальный перебор ячеек.

Если возникают проблемы с разрешениями или безопасностью макросов, убедитесь, что макросы включены в настройках Excel до запуска кода.


Связанные статьи:


Лучшие инструменты повышения продуктивности в Office

🤖KUTOOLS AI Помощник: Преобразуйте Анализ данных с помощью:Интеллектуального выполнения   |  Генерации кода|  Создания пользовательские формулы  |  Анализа данных и построения диаграмм|  Вызова Расширенные функции
Популярные функции:Поиск, выделение или Отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячеек без потери данных   |  Округление без использования формул
Супер ПОИСК:VLookup по нескольким критериям  |  VLookup по нескольким значениям  |   VLookup по нескольким листам   |   Распознавание нечетких соответствий
Расширенный раскрывающийся список:Быстрое создание выпадающего списка   |  Зависимый выпадающий список   |  Выпадающий список с множественным выбором
Управление столбцами:Добавление заданного количества столбцов|Перемещение столбцов|Переключение видимости скрытых столбцов|Сравнение диапазонов и столбцов
Избранные функции:Сетка фокусировки   |  Просмотр дизайна   |Улучшенная строка формулы   | Управление рабочими книгами и листами   |  Библиотека ресурсов(автотекст)|  Выбор даты   |  Объединить листы  |  Шифрование/Расшифровать ячейки   | Отправка писем по списку   |  Супер фильтр   |   Специальный фильтр(Фильтр ячеек с жирным шрифтом/курсив/зачёркивание…) …
Лучшие наборы инструментов 15:12 Текстовыеинструменты(Добавить текст,Удалить определенные символы, …)|   50+Типыдиаграмм(Диаграмма Ганта, …)|   40+ Практические формулы(Рассчитать возраст на основе даты рождения, …)|   19 Инструментывставки(Вставить QR-код,Вставка изображения по пути, …)|   12 Инструментыпреобразования(Преобразовать в слова,Конвертация валют, …)|   7 Объединить и разделитьИнструменты(Расширенное объединение строк,Разделить ячейки, …)|… и многое другое
Используйте Kutools на предпочитаемом языке — поддержка английского, испанского, немецкого, французского, китайского и ещё 40+ языков!

Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…


Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
  • Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!

Все надстройки Kutools — один установщик

Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.

ExcelWordOutlookTabsPowerPoint
  • Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
  • Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
  • Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
  • 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
  • Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек