Course
XLOOKUP() vs. VLOOKUP(): Uma comparação para usuários do Excel
Durante décadas, VLOOKUP()
tem sido a função de referência do Excel para pesquisa de dados. É uma ferramenta confiável, mas tem limitações. Por isso, em 2019, foi introduzida a XLOOKUP()
, uma nova função com recursos avançados. Neste artigo, compararemos VLOOKUP()
com XLOOKUP()
para que você entenda melhor seus recursos e diferentes usos.
Lembre-se de que a mudança de VLOOKUP()
para XLOOKUP()
é apenas uma das muitas atualizações do Excel. Manter-se atualizado com as funções em evolução do Excel é importante para maximizar a produtividade. Portanto, confira o programa de habilidades Excel Fundamentals para ter certeza de que você está usando os recursos mais recentes.
Sintaxe de XLOOKUP() e VLOOKUP()
Agora que você tem uma compreensão básica de ambas as funções, vamos entender sua sintaxe e como usá-las em aplicativos reais.
Sintaxe de VLOOKUP()
Vamos dar uma olhada na sintaxe do VLOOKUP()
.
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
Na fórmula acima:
-
lookup_value
é o valor que você deseja pesquisar. Pode ser um número, um texto ou uma referência a uma célula que contenha o valor da pesquisa. -
table_array
é o intervalo de células que contém os dados. A primeira coluna desse intervalo deve conter o endereçosearch_key
. -
col_index_num
é o número da coluna no intervalo do qual você deseja recuperar o valor. -
range_lookup
é onde você insere um valor lógico (TRUE
ouFALSE
).
Sintaxe de XLOOKUP()
Vamos agora dar uma olhada na sintaxe do xlookup()
. Como você pode ver, XLOOKUP()
tem mais argumentos do que VLOOKUP()
.
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
Na fórmula acima:
-
lookup_value
é o valor que você deseja pesquisar. -
lookup_array
é o intervalo de células em que o valor de pesquisa é pesquisado. -
return_array
é o intervalo de células que contém o valor que você deseja retornar. -
if_not_found
(opcional) retorna um valor se nenhuma correspondência for encontrada. Se o valor não for especificado, você retornará#N/A
. -
match_mode
(opcional) determina o tipo de correspondência a ser realizada.0
é para correspondência exata (padrão).-1
é para correspondência exata ou para o próximo item menor.1
é para correspondência exata ou para o próximo item maior.2
é para correspondência de caracteres curinga. -
search_mode
(opcional) determina o modo de pesquisa a ser usado.1
é usado para pesquisar do primeiro ao último (padrão).-1
é usado para pesquisar do último ao primeiro.2
é usado para executar a pesquisa binária em ordem crescente.-2
é usado para executar a pesquisa binária em ordem decrescente.
Principais diferenças: XLOOKUP() vs. VLOOKUP()
Vamos agora explorar algumas diferenças importantes entre as funções XLOOKUP()
e VLOOKUP()
.
Modo de correspondência exata
XLOOKUP()
O padrão é o modo de correspondência exata, mas VLOOKUP()
requer a especificação de FALSE
para uma correspondência exata.
Diferença de correspondência exata entre XLOOKUP() e VLOOKUP(). Fonte: Imagem do autor.
Em VLOOKUP()
, não especifiquei o valor range_lookup
(4º argumento), portanto, ele forneceu a correspondência mais próxima, o que não é o resultado desejado. XLOOKUP()
Por outro lado, o Google, por padrão, retorna a correspondência exata.
Direção de pesquisa
VLOOKUP()
é restrito à pesquisa apenas à direita da primeira coluna na matriz da tabela selecionada. Mas o site XLOOKUP()
pode buscar valores em qualquer direção.
Diferença de direção de pesquisa entre VLOOKUP() e XLOOKUP(). Fonte: Imagem do autor.
Aqui, o VLOOKUP()
não encontrou as notas porque só pode pesquisar dados à direita do lookup_value
(nome do aluno). Em comparação, o XLOOKUP()
encontra as notas para o Robin porque ele pode pesquisar em qualquer direção (esquerda ou direita).
Referências de matriz
Em VLOOKUP()
, você precisa definir todo o intervalo de dados (matriz da tabela) e especificar o número da coluna (índice da coluna) que contém a saída desejada (coluna de retorno) em uma única fórmula. XLOOKUP()
é mais flexível do que isso. Ele permite que você defina matrizes separadas para o valor de pesquisa e os dados que deseja retornar.
Referências de matriz entre VLOOKUP() e XLOOKUP(). Fonte: Imagem do autor.
Pesquisa horizontal
VLOOKUP()
não permite que você faça pesquisas horizontais. Se você quiser fazer uma pesquisa horizontal, terá de usar HLOOKUP()
. XLOOKUP()
consolida essas duas funções porque executa pesquisas verticais e horizontais, de modo que você não precisa usar funções separadas para diferentes direções de pesquisa.
Diferença de pesquisa horizontal entre VLOOKUP() e XLOOKUP(). Fonte: Imagem do autor.
Manipulação de inserções/exclusões de colunas
As alterações na coluna afetam VLOOKUP()
por causa do código rígido column_index_num
. No entanto, o site XLOOKUP()
não é afetado pelas alterações de coluna. Ele continua funcionando sem ajustes na fórmula.
XLOOKUP() não é afetado, enquanto VLOOKUP() falha. Fonte: Imagem do autor.
Classificação e pesquisa
Você pode classificar VLOOKUP()
em ordem crescente, mas isso causaria dificuldades ao lidar com dados não classificados. No entanto, o XLOOKUP()
pode usar o argumento search_mode
para pesquisar em ordem ascendente e descendente.
Tratamento de inserção/exclusão em XLOOKUP() e VLOOKUP(). Fonte: Imagem do autor.
Mensagens de erro personalizadas
VLOOKUP()
mostra um sinal de erro #N/A
quando nenhuma correspondência é encontrada. XLOOKUP()
tem um parâmetro opcional if_not_found
que permite que você personalize o texto de saída se um valor não for encontrado.
Personalização de mensagens de erro em XLOOKUP() e VLOOKUP(). Fonte: Imagem do autor.
Você pode ver que o site VLOOKUP()
não conseguiu encontrar o aluno em sua lista e exibiu um erro #N/A
. Da mesma forma, a função XLOOKUP()
não conseguiu localizar o nome do aluno. No entanto, diferentemente de VLOOKUP()
, XLOOKUP()
retorna uma mensagem específica quando não há correspondência.
Retornar vários valores
VLOOKUP()
pode retornar apenas um valor de cada vez. Mas o site XLOOKUP()
pode recuperar valores de várias colunas simultaneamente. É por isso que você pode usar uma fórmula XLOOKUP()
em vez de várias fórmulas VLOOKUP()
.
Retorno de vários valores com XLOOKUP() e VLOOKUP(). Fonte: Imagem do autor.
Modo de pesquisa
VLOOKUP()
examina uma lista desde o início e retorna apenas o primeiro valor que corresponde ao que você deseja. Mas o XLOOKUP()
pode examinar uma lista em qualquer direção (de cima para baixo ou de baixo para cima) e encontrar itens rapidamente em listas extensas.
Diferença entre VLOOKUP() e XLOOKUP(). Fonte: Imagem do autor.
Aqui, o site VLOOKUP()
recupera a primeira ocorrência, que é do primeiro semestre. Entretanto, com XLOOKUP()
, uso o código do modo de pesquisa -1
para pesquisar de baixo para cima.
Exemplos práticos e casos de uso
Vamos agora dar uma olhada em alguns exemplos práticos e casos de uso.
Usando uma pesquisa sem precisar reorganizar uma tabela
Tenho uma lista de nomes e pontuações de alunos e quero encontrar a pontuação de cada aluno com base em seu nome. Para isso, usarei as funções XLOOKUP()
e VLOOKUP()
para mostrar a você as diferenças.
Ao usar o site XLOOKUP()
, insiro a seguinte fórmula:
=XLOOKUP(D8,B2:B5,A2:A5)
Nessa fórmula:
-
D8
contém o valor de pesquisa que é Charlie. -
B2:B5
contém os nomes dos alunos. A funçãoXLOOKUP()
procurará o valor em D8 dentro desse intervalo. -
A2:A5
é o intervalo que contém as pontuações correspondentes aos nomes dos alunos.
Ao usar o site VLOOKUP()
, insiro a seguinte fórmula:
=VLOOKUP(D4,A1:B5,1,0)
Nessa fórmula:
-
D4
contém o valor de pesquisa que é Charlie. -
A1:B5
Você pode pesquisar em todas as colunas(Pontuações, Nome do aluno ). -
1
retorna o valor da 1ª coluna do intervalo (Scores). -
0
recupera a correspondência exata.
VLOOKUP() retorna um erro #N/A, mas XLOOKUP() trata disso. Fonte: Imagem do autor.
Como você pode ver, o site VLOOKUP()
mostra um erro #N/A
porque não pode pesquisar à esquerda.
Criando uma saída personalizada quando um valor não é encontrado
Tenho uma lista de alunos com suas identificações, nomes e notas. Durante a pesquisa, digitei acidentalmente uma ID de aluno que não estava na lista. Para lidar com esse caso, quero que uma mensagem personalizada seja exibida sempre que o ID do aluno não for encontrado. Usarei as funções XLOOKUP()
e VLOOKUP()
para mostrar a você as diferenças.
Ao usar o site XLOOKUP()
, insiro a seguinte fórmula:
(=XLOOKUP(E9, A2:A5, B2:B5, "Student not Found"))
Nessa fórmula:
-
E9
contém o valor que você deseja pesquisar. No meu caso, é 14256. -
A2:A5
é o intervalo de células que contém o valor de pesquisa (ID do aluno). -
B2:B5
busca a pontuação do ID 14526. -
Student not Found
é exibido se a pontuação não estiver na lista.
Ao usar o site VLOOKUP()
, insiro a seguinte fórmula:
(=VLOOKUP(E6, A2:C5,2,0))
Nessa fórmula:
-
E6
refere-se à ID do aluno, que é o que estou procurando. -
A2:C5
refere-se ao intervalo que contém todos os dados da tabela. -
2
indica o número da coluna da qual os dados serão obtidos. -
0
recupera a correspondência exata.
XLOOKUP() retorna uma mensagem, mas VLOOKUP() não. Fonte: Imagem do autor.
Você pode ver que 14256 não existe no intervalo A2:A5
, portanto, XLOOKUP()
retorna a mensagem personalizada Student not found
. E VLOOKUP()
, por outro lado, gera um erro #N/A
.
Pesquisando de baixo para cima
Quero descobrir o salário de Sarah no ano mais recente. Para isso, usarei as funções XLOOKUP()
e VLOOKUP()
para mostrar a você as diferenças.
Ao usar o site XLOOKUP()
, insiro a seguinte fórmula:
=XLOOKUP(F8,B2:B10,C2:C10,,,-1)
Nessa fórmula:
-
F8
contém o valor de pesquisa Você. -
B2:B10
olha para o intervalo e procura por Sarah. -
C2:C10
recupera os dados. -
-1
você pode pesquisar na parte inferior da coluna.
Ao usar o site VLOOKUP()
, insiro a seguinte fórmula:
=VLOOKUP(F4, B2:C10,2,0)
Nessa fórmula:
-
F4
contém o valor de pesquisa Você. -
B2:C10
procura o valor de pesquisa dentro desse intervalo. -
2
indica o número da coluna Salário da qual os dados serão obtidos. -
0
recupera a correspondência exata.
Diferença entre VLOOKUP() e XLOOKUP() no modo de pesquisa. Fonte: Imagem do autor.
Você pode ver que XLOOKUP()
encontra o salário desejado para o ano desejado, enquanto VLOOKUP()
exibe apenas o primeiro valor correspondente. Consegui fazer isso porque o site XLOOKUP()
me permite pesquisar de baixo para cima.
Desempenho e compatibilidade
Vamos agora comparar o desempenho e a compatibilidade das duas funções.
Desempenho em grandes conjuntos de dados
VLOOKUP()
pode ser mais lento ao lidar com grandes conjuntos de dados, especialmente se a coluna de pesquisa não estiver classificada e o argumento de pesquisa de intervalo estiver definido como FALSE
para uma correspondência exata. Isso ocorre porque o VLOOKUP()
varre o conjunto de dados sequencialmente até encontrar uma correspondência, o que pode consumir muito tempo em tabelas grandes. O XLOOKUP()
oferece melhor desempenho em conjuntos de dados grandes. Ele pode lidar com correspondências exatas de forma mais eficiente e pesquisar horizontal e verticalmente sem classificação.
Compatibilidade com diferentes versões do Excel
Agora, você deve estar pensando em abandonar o VLOOKUP()
depois de ver os benefícios do XLOOKUP()
. Mas deixe-me esclarecer: embora o XLOOKUP()
seja um recurso muito mais rápido e excelente, há alguns momentos em que ele não está disponível. Isso ocorre porque o XLOOKUP()
é um recurso mais recente que só funciona no Excel 2021 e no Microsoft 365 (a partir de 2019). Se você colaborar com pessoas que usam versões mais antigas do Excel, precisará usar VLOOKUP()
e outras funções em vez de XLOOKUP()
.
Tabela de resumo
Vamos criar uma tabela de resumo para facilitar a referência.
Recurso | VLOOKUP() | XLOOKUP() |
---|---|---|
Modo de correspondência padrão | Requer a especificação de FALSE para uma correspondência exata. |
O padrão é a correspondência exata. |
Direção de pesquisa | Somente pesquisas à direita da coluna de pesquisa. | Você pode pesquisar em qualquer direção (esquerda, direita, superior, inferior). |
Referências de matriz | Requer a definição de todo o intervalo de dados e do índice da coluna em uma única fórmula. | Permite matrizes separadas para o valor de pesquisa e os valores de retorno. |
Pesquisa horizontal | Não oferece suporte a pesquisas horizontais (HLOOKUP() é necessário). |
Oferece suporte a pesquisas verticais e horizontais. |
Como lidar com alterações de coluna | Afetado por inserções/exclusões de colunas devido a índices de coluna codificados. | Não é afetado por alterações na coluna, continuando a funcionar sem ajustes. |
Classificação e pesquisa | Limitado à classificação em ordem crescente. | Você pode pesquisar em ordem ascendente e descendente usando a opção search_mode argumento. |
Mensagens de erro personalizadas | Exibe #N/A quando nenhuma correspondência é encontrada. |
Permite a personalização da mensagem de saída quando nenhuma correspondência é encontrada. |
Retornar vários valores | Pode retornar apenas um valor de cada vez. | Você pode recuperar valores de várias colunas simultaneamente. |
Modo de pesquisa | Pesquisa de cima para baixo e retorna a primeira correspondência. | Você pode pesquisar em ambas as direções (de cima para baixo ou de baixo para cima) para obter resultados mais rápidos em listas extensas. |
Desempenho em grandes conjuntos de dados | Pode ser mais lento, especialmente com dados não classificados ou quando range_lookup is FALSE . |
Melhor desempenho, lida com grandes conjuntos de dados de forma eficiente e pesquisa sem classificação. |
Compatibilidade | Funciona com todas as versões do Excel. | Disponível apenas no Excel 2021 e no Microsoft 365 (a partir de 2019). |
Considerações finais | Ainda é útil para versões mais antigas do Excel ou tarefas de pesquisa mais simples. | Mais avançado e flexível, mais adequado para pesquisas complexas ou em grande escala. |
Considerações finais
XLOOKUP()
supera o desempenho do VLOOKUP()
, especialmente ao lidar com grandes conjuntos de dados ou requisitos de pesquisa complexos. Sua flexibilidade, incluindo pesquisa bidirecional, recuperação de vários resultados e adaptabilidade às alterações de dados, faz dele uma ferramenta útil. No entanto, o site VLOOKUP()
ainda tem seu lugar, principalmente para usuários de versões mais antigas do Excel ou para aqueles que preferem uma abordagem mais simples para pesquisas básicas. A melhor opção depende, em última análise, de suas necessidades específicas e da versão do Excel.
Se você é novo no Excel ou deseja construir uma base sólida, nosso curso Introdução ao Excel e o programa de habilidades Fundamentos do Excel são ótimos pontos de partida para dominar o básico.
Perguntas frequentes
O XLOOKUP() é melhor do que o VLOOKUP()?
Sim, o XLOOKUP()
é melhor porque pode pesquisar em qualquer coluna de uma tabela, retornar vários resultados, lidar melhor com erros e realizar pesquisas verticais e horizontais.
Quais são as limitações de VLOOKUP() em comparação com XLOOKUP()?
VLOOKUP()
é limitado à pesquisa na primeira coluna de um intervalo especificado. E ele só pode retornar um resultado por pesquisa.
O XLOOKUP() pode manipular operações de matriz como SUMIFS() ou COUNTIFS()?
Sim, o XLOOKUP()
pode ser usado com funções de matriz como SUMIFS()
e COUNTIFS()
para realizar cálculos mais complexos e tarefas de análise de dados.
Aprenda Excel com a DataCamp
Course
Power Pivot in Excel
Course
Case Study: Net Revenue Management in Excel
blog
Power BI versus Excel: Qual você deve usar?
tutorial
Como fazer um VLOOKUP() com vários critérios
Laiba Siddiqui
10 min
tutorial
Tutorial do Excel Regex: Dominando a correspondência de padrões com expressões regulares
tutorial
As 15 fórmulas básicas do Excel que todos precisam saber
tutorial
Como calcular o desvio padrão no Excel
tutorial
SELEÇÃO de várias colunas no SQL
DataCamp Team
3 min