PROCV que Retorne Correspondências à Esquerda da Coluna de Busca

Um problema comum que as pessoas se deparam é a limitação do PROCV em não conseguir retornar uma correspondência à esquerda de um termo procurado. Este artigo mostra como contornar essa situação.

Introdução

O PROCV só pode retornar uma correspondência de colunas que estejam dentro do seu parâmetro de tabela de busca. Como a função faz a busca na primeira coluna da tabela, não é possível retornar correspondências à esquerda (o índice da coluna retornada não pode ser menor que 1).

Considerando a tabela abaixo, a pergunta que quero responder é: no ano 1986 qual disco foi lançado?

A forma básica do PROCV não resolve esse problema.

A seguir iremos discutir algumas formas para resolver essa situação.

Criar Coluna Temporária

A forma “apagar um incêndio” para resolver esse problema é copiar a coluna de busca e colar à esquerda da coluna que se quer obter a correspondência, permitindo então usar o PROCV. Veja que colei apenas valores para não estragar a formatação da planilha:

A fórmula em B16 é:

=PROCV(C16;A6:B14;2;0)

Na verdade, nessa situação não houve PROCV para a esquerda, mas sim manipulações na planilha de forma que fosse possível usar a função.

No entanto, nem sempre você poderá usar essa solução. Por exemplo, se essa planilha estiver protegida, você não conseguirá povoar essa coluna auxiliar. Além disso, há a questão de estragar a estética da planilha.

ÍNDICE e CORRESP

As fórmulas ÍNDICE e CORRESP estão bem detalhadas aqui no site. Se não as conhece, recomendo que as estude. O exemplo abaixo resolve esse problema aninhando CORRESP dentro de ÍNDICE:

A fórmula em B16 é:

=ÍNDICE(B6:B14;CORRESP(C16;C6:C14;0))

Primeiro, usei CORRESP para retornar qual é a posição relativa de 1986 no vetor C6:C14, que é 3. Então, a fórmula se reduz a:

=ÍNDICE(B6:B14;3)

O elemento 3 do vetor B6:B16 é Master of Puppets, sendo a resposta do meu problema.

Download

Para fazer download da pasta de trabalho usada neste artigo, clique aqui.

Sobre Felipe Gualberto

Microsoft Most Valuable Professional (MVP) de Excel.
Esta entrada foi publicada em Tutoriais e marcada com a tag , , , , , . Adicione o link permanente aos seus favoritos.
  • Neto

    Felipe, parabéns pelo post. Realmente o PROCV é uma verdadeira “mão na roda” e poder ampliar sua funcionalidade é muito bom. Para a busca à esquerda, gostaria de deixar a seguinte sugestão, partindo do seu exemplo (que de fato é muito bom, principalmente das linhas 6 à 9): =PROCV(C16;ESCOLHER({21};B6:B14;C6:C14);2;0).

    Um abraço e sucesso para você!

    • Obrigado pela contribuição. O motivo de eu não gostar desse tipo de construção de fórmula é que quando cria-se um arranjo dinâmico com a função ESCOLHER, o Excel não é capaz de fazer interseção com a área utilizada de uma planilha, fazendo avaliações desnecessárias.
      Exemplificando: suponha que você tenha uma planilha que possui dados apenas até a linha 10.
      A fórmula =PROCV(D1;A:B;2;0) é milhares de vezes mais rápida que a vilã =PROCV(D1;ESCOLHER({12};A:A;B:B);2;0), pois esta processa todas as células do intervalo A1:A1048576, e a PROCV normal processa apenas A1:A10.

      • Neto

        Eu não sabia dessa característica. De fato, para uma Range tão ampla, isso vai fazer muita diferença no processamento. Obrigado pela dica!