Vba: como escrever funções sumif e sumifs


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

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

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

Este exemplo específico irá somar os valores no intervalo B2:B12 somente quando o valor correspondente no intervalo A2:A12 for igual a “Mavs” e atribuir o resultado à célula E2 .

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

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

Este exemplo específico irá somar os valores no intervalo C2:C12 somente quando o valor no intervalo A2:A12 for igual a “Mavs” e o valor no intervalo B2:B12 for 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 SUMIF em VBA

Digamos que queremos calcular a soma dos valores da coluna de pontos apenas para os jogadores que estão no time Mavs.

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

 SubSumif_Function ()
    Range(" E2 ") = WorksheetFunction.Sumif(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 o valor 73 .

Isso representa a soma dos valores na coluna de pontos do jogador do time Mavs.

Podemos verificar se isso está correto calculando manualmente a soma dos valores da coluna de pontos para os jogadores do time Mavs:

Soma dos pontos para jogadores Mavs: 22 + 10 + 29 + 12 = 73 .

Exemplo 2: função SUMIFS em VBA

Digamos que queremos calcular a soma dos valores da coluna de assistências apenas para jogadores que atendam 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 SUMIFS:

 Sub Sumifs_Function()
    Range(" E2 ") = WorksheetFunction.SumIfs(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 18 .

Isso representa a soma dos valores da coluna de pontos dos jogadores do time Mavs que marcaram mais de 20 pontos.

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

Recursos adicionais

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

VBA: Como escrever funções COUNTIF e COUNTIFS
VBA: Como escrever funções AVERAGEIF e AVERAGEIFS

Add a Comment

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