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