Vlookup Text
A função Vlookup padrão pode ser usada para encontrar um valor dentro de uma tabela:
E usaríamos VLOOKUP assim:
= PROCV (A1: 10, "Cachorro", 2, FALSO)
para fornecer o valor 30.
Porém, nesta lista, vemos que Dog ocorre 3 vezes. A função VLOOKUP padrão retornará apenas o valor associado ao primeiro item da lista. Ele não retornará 125 ou 9.250 com a 2ª ou 3ª instância de "cachorro" nesta lista.
Vlookup Multiple Results
A função a seguir nos permite especificar um intervalo, uma expressão a ser pesquisada e a instância (número do resultado) e, em seguida, retornar o valor correspondente:
Função Find_nth_Occurrence (Column_Range As Range, Expression As String, Occ As Integer) As Double Dim Cell Dim Occurrences_to_date As Integer Find_nth_Occurrence = 1000000 Occurrences_to_date = 0 Para Cada Célula Em Column_Range If Cell.Value = Expression Then Occurrences_to_date Then Find_nth_Occurrence = Cell.Offset (0, 1) .Value End If End If Next Cell End Function
A principal diferença entre esta função e a função VLOOKUP padrão é que, neste caso, o intervalo é o único intervalo de rótulos - não todo o intervalo de dados.
A seguir está uma sub-rotina que chama essa função com base no evento de clique de um botão de comando. Ele procura no intervalo A1: A8 na Folha2, a 3ª instância da palavra Cachorro:
Private Sub CommandButton1_Click () Dim Answer As Double Answer = Find_nth_Occurrence (Sheets ("Sheet2"). Range ("A1: A8"), "Dog", 3) MsgBox AnswerEnd Sub
A variável “Answer” armazena o resultado da função - que é então exibido em uma Msgbox na tela:
> No entanto, se a palavra não puder ser encontrada na lista ou a frequência não ocorrer, por exemplo, não houver uma 5ª ocorrência da palavra “Cachorro”, então o valor de 1.000.000 é retornado: -
Resposta = Find_nth_Occurrence (Sheets (“Sheet2”). Range (“A1: A8”), “Dog”, 5)
Ou
Resposta = Find_nth_Occurrence (Sheets (“Sheet2”). Range (“A1: A8”), “Horse”, 2)