Vba: como escrever funções averageif e averageifs


Você pode usar os seguintes métodos para escrever funções AVERAGEIF e AVERAGEIFS usando VBA no Excel:

Método 1: função AVERAGEIF em VBA

 Sub Averageif_Function()
    Range(" E2 ") = WorksheetFunction.AverageIf(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub

Este exemplo específico calculará o valor médio no intervalo B2:B12 onde o valor correspondente no intervalo A2:A12 é igual a “Mavs” e, em seguida, atribuirá o resultado à célula E2 .

Método 2: função AVERAGEIFS em VBA

 Sub Averageifs_Function()
    Range(" E2 ") = WorksheetFunction.AverageIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub

Este exemplo específico calculará o valor médio no intervalo C2:C12 onde o valor no intervalo A2:A12 é igual a “Mavs” e o valor no intervalo B2:B12 é maior que 20 e, em seguida, atribuirá o resultado à célula E2 . .

Os exemplos a seguir mostram como usar cada um desses métodos na prática com o seguinte conjunto de dados no Excel que contém informações sobre vários jogadores de basquete:

Exemplo 1: função AVERAGEIF em VBA

Digamos que queremos calcular o valor médio na coluna de pontos dos jogadores do time Mavs.

Podemos criar a seguinte macro para executar esta função AVERAGEIF:

 Sub Averageif_Function()
    Range(" E2 ") = WorksheetFunction.AverageIf(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub

Quando executamos esta macro, recebemos a seguinte saída:

Observe que a célula E2 contém um valor de 18,25 .

Isso nos diz que o valor médio na coluna de pontos para os jogadores do time Mavs é 18,25.

Podemos verificar se isso está correto calculando manualmente o valor médio dos pontos do jogador nos Mavs:

Média de pontos do jogador Mavs: (22 + 10 + 29 + 12) / 4 = 18,25 .

Exemplo 2: função AVERAGEIFS em VBA

Digamos que queremos calcular o valor médio na coluna de assistências para jogadores que atendem aos seguintes critérios:

  • O jogador faz parte da equipe Mavs.
  • O jogador marcou mais de 20 pontos.

Podemos criar a seguinte macro para executar esta função AVERAGEIFS:

 Sub Averageifs_Function()
    Range(" E2 ") = WorksheetFunction.AverageIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub

Quando executamos esta macro, recebemos a seguinte saída:

Observe que a célula E2 contém o valor 9 .

Isso nos diz que a média de assistências entre os jogadores que fazem parte do time Mavs e que marcaram mais de 20 pontos é 9.

Nota : Neste exemplo, criamos uma função AVERAGEIFS usando dois intervalos de critérios, mas você pode usar quantos intervalos de critérios desejar no método WorksheetFunction.AverageIfs .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:

VBA: Como calcular o valor médio do intervalo
VBA: Como escrever funções SUMIF e SUMIFS
VBA: Como escrever funções COUNTIF e COUNTIFS

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *