Vba: como usar correspondência de índice


Você pode usar a seguinte sintaxe básica para realizar um INDEX MATCH em VBA:

 SubIndexMatch ()

    Dim i As Integer
    
    ' Perform index match
    For i = 2 To 11
    Cells(i, 5).Value = WorksheetFunction.Index(Range(" A2:A11 "), _
    WorksheetFunction.Match(Cells(i, 4).Value, Range(" B2:B11 "), 0))
    Next i
End Sub

Este exemplo específico procura valores nas células 2 a 11 da quarta coluna da planilha no intervalo B2:B11 e, em seguida, retorna os valores correspondentes no intervalo A2:A11 na quinta coluna da planilha.

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

Exemplo: Execute um INDEX MATCH usando VBA

Suponha que temos o seguinte conjunto de dados em Excel contendo informações sobre jogadores de basquete:

Para cada jogador na coluna D, suponha que queremos encontrar o nome do seu time na coluna A e, em seguida, escreva o nome do time na coluna E.

Podemos criar a seguinte macro para fazer isso:

 SubIndexMatch ()

    Dim i As Integer
    
    ' Perform index match
    For i = 2 To 11
    Cells(i, 5).Value = WorksheetFunction.Index(Range(" A2:A11 "), _
    WorksheetFunction.Match(Cells(i, 4).Value, Range(" B2:B11 "), 0))
    Next i
End Sub

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

Observe que esta macro foi capaz de pesquisar o nome de cada jogador e depois retornar o nome do time correspondente na coluna E.

Observe que dentro do loop For, a sintaxe Cells(i,5).value especifica que queremos que os nomes das equipes sejam retornados na quinta coluna da planilha, ou seja, a coluna E.

Se mudarmos esta sintaxe para Cells(i,6).value então os nomes dos times serão retornados na sexta coluna da planilha:

 SubIndexMatch ()

    Dim i As Integer
    
    ' Perform index match
    For i = 2 To 11
    Cells(i, 6).Value = WorksheetFunction.Index(Range(" A2:A11 "), _
    WorksheetFunction.Match(Cells(i, 4).Value, Range(" B2:B11 "), 0))
    Next i
End Sub

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

Observe que os nomes das equipes agora são retornados na sexta coluna da planilha (coluna F).

Recursos adicionais

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

VBA: como verificar se uma string contém outra string
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 *