TOP

Função aprimorada VLOOKUP (VLOOKUP2)

Descrição

A função integrada VLOOKUP é uma das funções mais poderosas em Excel. Mas tem uma desvantagem significativa - encontra apenas a primeira ocorrência do valor desejado na tabela e apenas na coluna da extrema direita. Mas se você precisar do 2º, do 3º e não do último?


Um exemplo de problema

Digamos que temos uma tabela de empréstimos processados como esta:

Precisamos saber, por exemplo, qual foi o valor do terceiro empréstimo concedido a Mike ou quando John executou seu segundo contrato. Função integrada VLOOKUP sabe pesquisar apenas a primeira ocorrência de um nome na tabela e não vai nos ajudar.

Vamos escrever nossa função, que pesquisará não apenas a primeira, mas também qualquer (enésima) entrada subsequente. Vamos chamá-lo, por exemplo, de VLOOKUP2.

VBA código para função VLOOKUP2

Abra o cardápio Serviço - Macro - Editor Visual Basic , insira o novo módulo (menu Insert - Module) e copie o texto desta função lá:

Function VLOOKUP2(Table           As Range, _
                  SearchColumnNum As Integer, _
                  SearchValue     As Variant, _
                  N               As Integer, _
                  ResultColumnNum As Integer)        
  Dim i      As Integer
  Dim iCount As Integer
       
  For i = 1 To Table.Rows.Count
    If Table.Cells(i, SearchColumnNum) = SearchValue Then
      iCount = iCount + 1
    End If
    If iCount = N Then
      VLOOKUP2 = Table.Cells(i, ResultColumnNum)
      Exit For
    End If
  Next i
End Function 

Feche o editor Visual Basic e retorne para Excel.

Agora no Assistente de Função, na categoria Definido pelo Usuário, você pode encontrar e usar nossa função VLOOKUP2. A sintaxe da função é a seguinte:

=PROCV2(mesa ; coluna_número_onde_nós_pesquisamos ; valor_pesquisado; número de entrada ; coluna_número_de_qual_tiramos_o_valor )

Ou seja, para saber o valor do terceiro empréstimo concedido a Mike, você precisará inserir:

=PROCV2(A2:A19 ; 1 ; "Mike"; 3 ; 4 )

Artigos sobre o tema: