Curso
Você já deve ter ouvido falar sobre VLOOKUP()
. É uma das funções mais conhecidas (se não a mais conhecida) do Excel. E quando você entender como funciona, vai adorar usar, porque resolve um problema bem complicado e demorado. O VLOOKUP
é realmente a maneira da Microsoft de te dar de volta um monte de tempo.
Neste artigo, vou explicar como funciona o VLOOKUP()
e mostrar os usos mais comuns dele. E você sempre pode voltar a este artigo mais tarde se esquecer algum dos argumentos.
O que faz a função VLOOKUP()?
Agora que já expliquei tudo, vamos ver o que o VLOOKUP()
realmente faz.
Basicamente, VLOOKUP()
procura um valor na primeira coluna de uma tabela (ou intervalo de células) e mostra um valor de outra coluna na mesma linha.
Pense nisso assim: “Encontre esse item na minha lista e me dê outra coisa da mesma linha.”
Tem quatro argumentos importantes que você usa sempre:
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
-
lookup_value
: O valor que você quer procurar. -
table_array
: O intervalo de células que contém seus dados (incluindo a coluna a ser pesquisada e a(s) coluna(s) a ser(em) retornada(s)). -
col_index_num
: O número da coluna (começando d1
, para a coluna mais à esquerda) na tabela_array da qual retornar o valor. -
[range_lookup]
: Opcional. Digite “FALSE
” pra achar algo exatamente igual (geralmente é isso que você quer) ou “TRUE
” pra achar algo parecido.
VLOOKUP()
é uma função em que você precisa entender esses argumentos. Nem todas as funções são assim, mas a função “ VLOOKUP()
” definitivamente é.
Excel VLOOKUP() Exemplo básico
Vamos colocar VLOOKUP()
em ação. Imagina que você tem uma tabela simples de produtos e preços, tipo assim:
Digamos que você queira saber o preço de uma banana. Você pode usar:
=VLOOKUP("Banana", A2:B4, 2, FALSE)
-
"Banana"
é o valor que você está procurando. -
A2:B4
é o intervalo de dados. -
2
diz ao Excel para pegar o valor da segunda coluna, que é Preço. -
FALSE
significa que você quer uma correspondência exata. (Mais sobre esse argumento específico mais tarde. É o que é mais confuso.)
Essa fórmula vai mostrar “ $0.30
”.
Agora, codificar o valor de forma rígida nem sempre é a melhor ideia, o que nos leva ao próximo ponto:
VLOOKUP() com referências de células em vez de codificação fixa
Nesse último exemplo, eu codifiquei o valor de pesquisa. Na prática, muitas vezes você vai querer fazer referência a uma célula. Isso deixa sua fórmula dinâmica e reutilizável. Por exemplo, se você digitar “Laranja” na célul D2
, você pode usar:
=VLOOKUP(D2, A2:B4, 2, FALSE)
Agora, sempre que você mudar o valor em “ D2
”, a fórmula vai buscar o preço certo e você vai ver que não precisa mexer na fórmula.
VLOOKUP() Usando exato vs. aproximado Correspondência aproximada
Agora você deve estar se perguntando sobre o quarto argumento, [range_lookup]
. Às vezes, isso não importa, mas outras vezes tem um grande impacto nos seus resultados. A regra geral é que, na maioria das vezes, você vai querer usar FALSE
para uma correspondência exata.
-
Use
FALSE
para coisas como nomes, IDs ou códigos de produtos, onde você precisa de uma correspondência exata. -
Use
TRUE
para intervalos (pense em faixas de impostos ou escalas de notas) em que você quer o valor mais próximo sem ultrapassar. Só lembra (e isso também é importante): a coluna de pesquisa precisa estar em ordem crescente quando usaresTRUE
.
Vamos ver um exemplo de correspondência aproximada:
Suponha que você tenha esta tabela de taxas de imposto:
Se a tua renda é e $15,000
:
=VLOOKUP(15000, A2:B4, 2, TRUE)
O Excel vai achar o valor mais próximo menor ou igual a 15000
(que é 10000
) e vai mostrar 15%
.
Mas, de novo, pra maioria das pesquisas, é melhor usar FALSE
.
Armadilhas e limitações comuns
Como tudo na vida, o VLOOKUP()
tem algumas limitações, para que você não tenha problemas mais tarde. Aqui estão algumas coisas a serem observadas:
-
Só procura da esquerda para a direita. Essa é a grande limitação que me vem à mente.
VLOOKUP()
sempre procura na primeira coluna do seutable_array
e retorna os dados das colunas à direita. Se você precisar procurar dados à esquerda, vai precisar de outra abordagem. -
O número da coluna é fixo. Se você inserir ou excluir colunas na sua tabela, o
col_index_num
pode acabar apontando para a coluna errada. Às vezes, se você quebrar alguma coisa, você vai notar uma coluna inteira de erros#N/A
, mas outras vezes o problema vai ser mais difícil de perceber. -
Pode ser lento com conjuntos de dados grandes. Com tabelas muito grandes, pode haver uma diferença real e perceptível no desempenho. Se você achou o valor que estava procurando e não precisa que a pesquisa seja dinâmica, podecopiar e colar Copiar > Colar Especial para não sobrecarregar sua pasta de trabalho.
Se você tiver esses problemas, dá uma olhada em alternativas como INDEX()
+MATCH()
ou a função mais recente XLOOKUP()
(se estiver disponível na sua versão do Excel). (Vou te ajudar a entender as diferenças entre essas funções mais adiante.)
Tornando suas funções VLOOKUP() mais flexíveis
Agora que você já tá de boa com o básico, vamos deixar suas fórmulas do VLOOKUP()
mais flexíveis e fáceis de gerenciar. Um truque legal é usar intervalos nomeados. Por exemplo, selecione “ A2:B4
”, digite “ProductTable” no campo“ Name ” e agora sua fórmula pode referenciar esse nome:
=VLOOKUP(D2, ProductTable, 2, FALSE)
Isso deixa suas fórmulas bem mais fáceis de ler e manter, principalmente se suas tabelas mudarem de lugar.
Como lidar com erros da função VLOOKUP()
Às vezes, VLOOKUP()
não consegue encontrar o valor que você está procurando, resultando em um erro “ #N/A
”. Para organizar as coisas e deixar sua planilha mais fácil de usar, você pode usar IFERROR() para detectar esses erros:
=IFERROR(VLOOKUP(D2, ProductTable, 2, FALSE), "Not found")
Assim, os valores que faltam vão aparecer como “Não encontrado” em vez de uma mensagem de erro, que pode ser meio chata.
VLOOKUP() vs. INDEX()/MATCH() vs. XLOOKUP()
Comecei a falar sobre funções alternativas antes.
INDEX()
E o MATCH()
junto com ele são sempre sugeridos, e aqui está o porquê:
-
INDEX()
/MATCH()
permite que você procure valores em qualquer direção, não só para a direita, que é uma grande limitação doVLOOKUP()
que eu falei antes. -
A coluna que você está procurando não precisa ser a primeira coluna do intervalo.
-
Inserir ou excluir colunas não vai quebrar sua fórmula.
E aqui tá como o XLOOKUP() se compara ao VLOOKUP():
-
XLOOKUP()
substitui tantoVLOOKUP()
quantoINDEX()
/MATCH()
, juntando suas funcionalidades em uma fórmula única e mais intuitiva. -
Você pode olhar para a esquerda, direita, acima ou abaixo.
-
Não precisa que a coluna de pesquisa esteja em uma posição fixa.
-
Você pode definir um valor alternativo se nada for encontrado, evitando o temido erro “
#N/A
” sem precisar usar a correção “IFERROR()
” que mostrei anteriormente.
Algumas dicas e atalhos
Com base em tudo o que falamos, aqui vão algumas dicas úteis de “ VLOOKUP()
”:
-
Referênciasabsolutassobre o “ ”: Quando copiar sua fórmula, bloqueie sua tabela_array com sinais de
$
(por exemplo,$A$2:$B$100
) para manter o intervalo constante. -
Classificação: Para correspondências aproximadas (com
TRUE
), certifique-se de que a coluna de pesquisa esteja em ordem crescente. -
Partial ::
VLOOKUP()
não suporta diretamente curingas para correspondências parciais, a menos que você useTRUE
pararange_lookup
ou aplique soluções alternativas criativas.
Conclusão
Temos mais tutoriais incríveis sobre casos específicos de uso do VLOOKUP()
. Dá uma olhada na nossa coleção:
- VLOOKUP() de outra planilha: Um guia prático no Excel
- Como fazer uma pesquisa VLOOKUP() com vários critérios
- Como juntar VLOOKUP() com IF() no Excel
Então, pra ter uma trilha de aprendizagem estruturada e ajudar a colocar tudo isso em um contexto melhor e realmente melhorar suas habilidades, inscreva-se nos nossos cursos Análise de Dados no Excel e Funções Avançadas do Excel. É mesmo a melhor maneira de continuar melhorando no Excel.
Avance em sua carreira com o Excel
Adquira as habilidades para maximizar o Excel - não é necessário ter experiência.
