Как рассчитать средневзвешенное значение в vba (с примером)


Вы можете использовать следующий базовый синтаксис для расчета средневзвешенного значения с помощью VBA:

 Sub FindWeightedAverage()

Range(" E2 ") = _
    WorksheetFunction.SumProduct(Range(" B2:B7 "), Range(" C2:C7 ")) / _
    WorksheetFunction.Sum(Range(" C2:C7 "))

End Sub

В этом конкретном примере вычисляется средневзвешенное значение, используя ячейки в диапазоне B2:B7 в качестве значений и ячейки в диапазоне C2:C7 в качестве весов.

Затем средневзвешенное значение отображается в ячейке E2 .

В следующем примере показано, как использовать этот синтаксис на практике.

Пример. Вычисление средневзвешенного значения с помощью VBA

Допустим, у нас есть следующий набор данных в Excel, который показывает различные продажи сотрудников компании:

Предположим, мы хотим рассчитать средневзвешенное значение цены, используя значения в столбце «Сумма» в качестве значений, а значения в столбце «Цена» в качестве весов:

Для этого мы можем создать следующий макрос:

 Sub FindWeightedAverage()

Range(" E2 ") = _
    WorksheetFunction.SumProduct(Range(" B2:B7 "), Range(" C2:C7 ")) / _
    WorksheetFunction.Sum(Range(" C2:C7 "))

End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод:

Обратите внимание, что ячейка E2 содержит значение 9,705882 .

Мы можем убедиться, что это правильно, вручную рассчитав средневзвешенное значение.

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

Средневзвешенное значение = Σw i X i / Σw i

Золото:

  • w i = значения веса
  • X i = значения данных

Мы можем подставить значения из нашего набора данных в эту формулу, чтобы рассчитать средневзвешенную цену:

  • Средневзвешенное значение = Σw i X i / Σw i
  • Средневзвешенное значение = (1*8 + 3*5 + 2*6 + 2*7 + 5*12 + 4*14) / (1+3+2+2+5+4)
  • Средний балл ученика А = 9,705882

Это соответствует значению, которое мы рассчитали с помощью макроса.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:

VBA: Как написать функции СРЗНАЧЕСЛИ и СРЗНАЧЕСЛИФС
VBA: как писать функции СУММЕСЛИ и СУММЕСЛИ
VBA: как писать функции COUNTIF и COUNTIFS

Добавить комментарий

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