VLOOKUP é uma função do Excel para obter dados de uma tabela organizada verticalmente. Os valores de pesquisa devem aparecer na primeira coluna da tabela passada para VLOOKUP. VLOOKUP suporta correspondência aproximada e exata e curingas (*?) Para correspondências parciais.
Dados verticais | Números de coluna | Apenas parece certo | Modos de correspondência | Correspondência exata | Correspondência aproximada | Primeira partida | Correspondência de curinga | Pesquisa bidirecional | Critérios múltiplos | # N / A Erros | Vídeos
V é para vertical
O objetivo de VLOOKUP é obter informações de uma tabela organizada assim:
Usando o número do pedido na coluna B como um valor de pesquisa, VLOOKUP pode obter a ID do cliente, o valor, o nome e o estado de qualquer pedido. Por exemplo, para obter o nome do cliente para o pedido 1004, a fórmula é:
=VLOOKUP(1004,B5:F9,4,FALSE) // returns "Sue Martin"Para dados horizontais, você pode usar o HLOOKUP, INDEX e MATCH, ou XLOOKUP.
VLOOKUP é baseado em números de coluna
Quando você usa VLOOKUP, imagine que todas as colunas da tabela são numeradas, começando da esquerda. Para obter um valor de uma coluna específica, forneça o número apropriado como o “índice da coluna”. Por exemplo, o índice da coluna para recuperar o primeiro nome abaixo é 2:
O sobrenome e o e-mail podem ser recuperados com colunas 3 e 4:
=VLOOKUP(H3,B4:E13,2,FALSE) // first name=VLOOKUP(H3,B4:E13,3,FALSE) // last name=VLOOKUP(H3,B4:E13,4,FALSE) // email addressVLOOKUP só parece certo
VLOOKUP só pode olhar para a direita. Os dados que você deseja recuperar (valores de resultado) podem aparecer em qualquer coluna à direita dos valores de pesquisa:
Se você precisa pesquisar os valores à esquerda, consulte INDEX e MATCH ou XLOOKUP.
Correspondência exata e aproximada
VLOOKUP tem dois modos de correspondência, exata e aproximada. O nome do argumento que controla a correspondência é “range_lookup”. Este é um nome confuso, porque parece ter algo a ver com intervalos de células como A1: A10. Na verdade, a palavra “intervalo” neste caso se refere a “intervalo de valores” – quando range_lookup for TRUE, VLOOKUP corresponderá a um intervalo de valores em vez de um valor exato. Um bom exemplo disso é usar VLOOKUP para calcular notas.
É importante entender que range_lookup padroniza como TRUE, o que significa que VLOOKUP usará correspondência aproximada por padrão, o que pode ser perigoso. Defina range_lookup como FALSE para forçar a correspondência exata:
Observação: você também pode fornecer zero (0) em vez de FALSE para uma correspondência exata.
Correspondência exata
Na maioria dos casos, você provavelmente desejará usar VLOOKUP no modo de correspondência exata. Isso faz sentido quando você tem uma chave exclusiva para usar como valor de pesquisa, por exemplo, o título do filme nestes dados:
A fórmula em H6 para encontrar o ano, com base em uma correspondência exata do título do filme, é:
=VLOOKUP(H4,B5:E9,2,FALSE) // FALSE = exact matchCorrespondência aproximada
Nos casos em que você deseja a melhor correspondência, não necessariamente uma correspondência exata, você desejará usar o modo aproximado. Por exemplo, a seguir queremos pesquisar uma taxa de comissão na tabela G5: H10. Os valores de pesquisa vêm da coluna C. Neste exemplo, precisamos usar VLOOKUP no modo de correspondência aproximada, porque na maioria dos casos uma correspondência exata nunca será encontrada. A fórmula VLOOKUP em D5 é configurada para realizar uma correspondência aproximada, definindo o último argumento como TRUE:
=VLOOKUP(C5,$G$5:$H$10,2,TRUE) // TRUE = approximate matchVLOOKUP varrerá os valores na coluna G para o valor de pesquisa. Se uma correspondência exata for encontrada, VLOOKUP a usará. Caso contrário, PROCV irá “retroceder” e corresponder à linha anterior.
Observação: os dados devem ser classificados em ordem crescente por valor de pesquisa ao usar o modo de correspondência aproximada com VLOOKUP.
Primeira correspondência
No caso de valores duplicados, VLOOKUP encontrará a primeira correspondência quando o modo de correspondência for exato. Na tela abaixo, VLOOKUP está configurado para encontrar o preço da cor “Verde”. Existem três entradas com a cor Verde e VLOOKUP retorna o preço da primeira entrada, $ 17. A fórmula na célula F5 é:
=VLOOKUP(E5,B5:C11,2,FALSE) // returns 17
Correspondência de curinga
A função VLOOKUP oferece suporte a curingas, o que torna possível realizar uma correspondência parcial em um valor de pesquisa. Por exemplo, você pode usar VLOOKUP para recuperar valores de uma tabela após digitar apenas parte de um valor de pesquisa. Para usar curingas com VLOOKUP, você deve especificar o modo de correspondência exata fornecendo FALSE ou 0 para o último argumento, range_lookup. A fórmula em H7 recupera o nome, “Michael”, depois de digitar “Aya” na célula H4:
=VLOOKUP($H$4&"*",$B$5:$E$104,2,FALSE)
Leia uma explicação mais detalhada aqui.
Pesquisa bidirecional
Dentro da função VLOOKUP, a coluna O argumento do índice é normalmente codificado como um número estático.No entanto, você também pode criar um índice de coluna dinâmica usando a função MATCH para localizar a coluna certa. Essa técnica permite criar uma pesquisa dinâmica bidirecional, combinando linhas e colunas. Na tela abaixo, VLOOKUP está configurado para realizar uma pesquisa baseada em Nome e Mês. A fórmula em H6 é:
=VLOOKUP(H4,B5:E13,MATCH(H5,B4:E4,0),0)
Para obter mais detalhes, consulte este exemplo.
Observação: em geral, INDEX e MATCH são uma maneira mais flexível de realizar pesquisas bidirecionais.
Critérios múltiplos
A função VLOOKUP não lida com vários critérios nativamente. No entanto, você pode usar uma coluna auxiliar para unir vários campos e usar esses campos como vários critérios em VLOOKUP. No exemplo abaixo, a coluna B é uma coluna auxiliar que concatena nomes e sobrenomes com esta fórmula:
=C5&D5 // helper columnVLOOKUP está configurado para fazer a mesma coisa para criar um valor de pesquisa. A fórmula em H6 é:
=VLOOKUP(H4&H5,B5:E13,4,0)
Para obter detalhes, consulte este exemplo.
Observação: INDEX e MATCH e XLOOKUP são maneiras mais robustas de lidar com pesquisas com base em vários critérios.
VLOOKUP e erros # N / A
Se você usar VLOOKUP, inevitavelmente encontrará o erro # N / A. O erro # N / A significa apenas “não encontrado”. Por exemplo, na tela abaixo, o valor de pesquisa “Toy Story 2” não existe na tabela de pesquisa e todas as três fórmulas VLOOKUP retornam # N / A:
Uma maneira de “interceptar” o erro NA é usar a função IFNA como esta:
A fórmula em H6 é:
=IFNA(VLOOKUP(H4,B5:E9,2,FALSE),"Not found")A mensagem pode ser personalizada conforme desejado. Para retornar nada (ou seja, para exibir um resultado em branco) quando VLOOKUP retorna # N / A, você pode usar uma string vazia como esta:
=IFNA(VLOOKUP(H4,B5:E9,2,FALSE),"") // no messageO erro # N / A é útil porque indica que algo está errado. Na prática, existem muitos motivos pelos quais você pode ver esse erro, incluindo:
- O valor de pesquisa não existe na tabela
- O valor de pesquisa está incorreto ou contém espaço extra
- O modo de correspondência é exato, mas deve ser aproximado
- O intervalo da tabela não foi inserido corretamente
- Você está copiando VLOOKUP e a referência da tabela não bloqueado
Leia mais: VLOOKUP sem erros # N / A
Mais sobre VLOOKUP
- Mais exemplos VLOOKUP
- Vídeos VLOOKUP
- 23 dicas para usar VLOOKUP
Outras notas
- Range_lookup controla se o valor precisa ser exatamente igual ou não. O padrão é TRUE = permitir correspondência não exata.
- Defina range_lookup como FALSE para exigir uma correspondência exata e TRUE para permitir uma correspondência não exata.
- Se range_lookup for TRUE (o configuração padrão), uma correspondência não exata fará com que a função VLOOKUP corresponda ao valor mais próximo na tabela que ainda é menor do que o valor.
- Quando range_lookup for omitido, a função VLOOKUP permitirá uma pesquisa não exata corresponder, mas usará uma correspondência exata, se houver.
- Se range_lookup for TRUE (a configuração padrão), certifique-se de que os valores de pesquisa na primeira linha da tabela sejam classificados em ordem crescente. Caso contrário, VLOOKUP pode retornar um valor incorreto ou inesperado.
- Se range_lookup for FALSE (requer correspondência exata), os valores na primeira coluna da tabela não precisam ser classificados.