Vba: como classificar uma lista de valores


Você pode usar a seguinte sintaxe básica para ordenar uma lista de valores no Excel usando VBA:

 SubRankValues ()
    Dim i As Integer

    For i = 2 To 11
    Range(" C " & i) = WorksheetFunction.Rank(Range(" B " & i), Range(" B2:B11 "), 0)
    Next i
End Sub

Este exemplo específico classifica os valores nas células B2:B11 e exibe as classificações nas células C2:C11 .

O último argumento 0 especifica que os valores devem ser classificados em ordem crescente (o maior valor recebe a classificação 1, o segundo maior valor recebe a classificação 2, etc.).

Para ordenar os valores em ordem decrescente, basta substituir o 0 por 1 .

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: como ordenar valores usando VBA

Suponha que temos a seguinte lista de jogadores de basquete junto com seus pontos marcados:

Suponha que queiramos calcular a classificação de cada valor na coluna de pontos.

Podemos criar a seguinte macro para fazer isso:

 SubRankValues ()
    Dim i As Integer

    For i = 2 To 11
    Range(" C " & i) = WorksheetFunction.Rank(Range(" B " & i), Range(" B2:B11 "), 0)
    Next i
End Sub

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

A classificação de cada valor na coluna de pontos é exibida na coluna C.

Por exemplo:

  • O jogador H com 41 pontos tem o maior valor de pontos, portanto recebe a classificação 1 .
  • O jogador C com 40 pontos tem o segundo maior valor de pontos, então ele recebe a classificação 2 .

E assim por diante.

Para classificar os valores da coluna de pontos em ordem decrescente, podemos alterar o último argumento do método Rank de 0 para 1 :

 SubRankValues ()
    Dim i As Integer

    For i = 2 To 11
    Range(" C " & i) = WorksheetFunction.Rank(Range(" B " & i), Range(" B2:B11 "), 1)
    Next i
End Sub

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

A classificação de cada valor na coluna de pontos é exibida na coluna C.

Por exemplo:

  • O jogador I com 11 pontos tem o menor valor de pontos, portanto recebe a classificação 1 .
  • O jogador E com 13 pontos tem o segundo menor valor de pontos, então ele recebe a classificação 2 .

E assim por diante.

Nota : Você pode encontrar a documentação completa do método VBA Rank aqui .

Recursos adicionais

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

VBA: Como contar células com texto específico
VBA: Como contar o número de linhas no intervalo
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 *