Como calcular a média ponderada em vba (com exemplo)
Você pode usar a seguinte sintaxe básica para calcular uma média ponderada usando VBA:
Sub FindWeightedAverage()
Range(" E2 ") = _
WorksheetFunction.SumProduct(Range(" B2:B7 "), Range(" C2:C7 ")) / _
WorksheetFunction.Sum(Range(" C2:C7 "))
End Sub
Este exemplo específico calcula uma média ponderada usando células no intervalo B2:B7 como valores e células no intervalo C2:C7 como pesos.
A média ponderada é então exibida na célula E2 .
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: calcular média ponderada usando VBA
Digamos que temos o seguinte conjunto de dados no Excel que mostra diversas vendas realizadas por funcionários de uma empresa:
Suponha que queremos calcular a média ponderada do preço, usando os valores da coluna Valor como valores e os valores da coluna Preço como pesos:
Podemos criar a seguinte macro para fazer isso:
Sub FindWeightedAverage()
Range(" E2 ") = _
WorksheetFunction.SumProduct(Range(" B2:B7 "), Range(" C2:C7 ")) / _
WorksheetFunction.Sum(Range(" C2:C7 "))
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
Observe que a célula E2 contém um valor de 9,705882 .
Podemos verificar se isso está correto calculando manualmente a média ponderada.
Lembre-se de que usamos a seguinte fórmula para a média ponderada:
Média ponderada = Σw i X i / Σw i
Ouro:
- w i = valores de peso
- X i = valores de dados
Podemos inserir os valores do nosso conjunto de dados nesta fórmula para calcular o preço médio ponderado:
- Média ponderada = Σw i X i / Σw i
- Média ponderada = (1*8 + 3*5 + 2*6 + 2*7 + 5*12 + 4*14) / (1+3+2+2+5+4)
- Média de notas do aluno A = 9,705882
Isso corresponde ao valor que calculamos usando a macro.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:
VBA: Como escrever funções AVERAGEIF e AVERAGEIFS
VBA: Como escrever funções SUMIF e SUMIFS
VBA: Como escrever funções COUNTIF e COUNTIFS