Pular para o conteúdo

Veja por que eu uso XLOOKUP

Tempo de leitura: 6 minutos

Como entusiasta de longa data do Excel, sempre gostei de usar VLOOKUP, uma das funções de pesquisa mais conhecidas do Excel. No entanto, a introdução do XLOOKUP pela Microsoft em 2019 mudou tudo. Depois que percebi o quão útil o XLOOKUP é, soube que nunca mais olharia para trás.

Usarei referências diretas de células para exemplificar meus pontos neste artigo, pois são mais claras do que referências estruturadas. Também não falarei explicitamente sobre PROCV porque — além de sua direção — ele funciona exatamente da mesma maneira que PROCV.

As sintaxes: XLOOKUP e VLOOKUP

Antes de explicar por que prefiro XLOOKUP a VLOOKUP, mostrarei como eles funcionam.

XLOOKUP

XLOOKUP tem seis argumentos:

=XLOOKUP(a,b,c,d,e,f)

onde

  • um (obrigatório) é o valor de pesquisa,
  • b (obrigatório) é a matriz de pesquisa,
  • c (obrigatório) é a matriz de retorno,
  • d (opcional) é o texto a ser retornado se o valor de pesquisa (um) não foi encontrado na matriz de pesquisa (b ),
  • e (opcional) é o modo de correspondência, e
  • f (opcional) é o modo de pesquisa.

Neste exemplo, quero que o Excel procure o ID do funcionário com base no nome na célula H1 e retorne o resultado para a célula H2.

Uma tabela Excel contendo dados de funcionários e uma tabela de dados separada que extrairá informações da tabela primária usando XLOOKUP.

Para fazer isso, digitarei a seguinte fórmula na célula H2:

=XLOOKUP(H1,B2:B12,A2:A12,"Invalid name",0,1)

Neste caso, a célula H1 contém o valor que o Excel precisa procurar (Mary), B2 a B12 é onde esse valor pode ser encontrado (nomes dos funcionários), A2 a A12 é onde o resultado correspondente será extraído (IDs dos funcionários ) e “Nome inválido” é o que desejo que o Excel retorne se o valor de pesquisa não estiver em nenhum lugar da matriz de pesquisa.

Eu optei pelos valores padrão para argumentos e e f porque quero uma correspondência exata e quero que o Excel pesquise no topo da matriz de pesquisa (mais sobre isso mais tarde).

Um exemplo da função XLOOKUP sendo usada no Excel.

PROCV

Aqui está a sintaxe VLOOKUP, que possui quatro argumentos:

=VLOOKUP(a,b,c,d)

onde

  • um (obrigatório) é o valor de pesquisa,
  • b (obrigatório) é a matriz de pesquisa e retorno,
  • c (obrigatório) é o número do índice da coluna e
  • d (opcional) é o modo de correspondência.

Neste exemplo, quero que o Excel pesquise a nacionalidade com base no ID do funcionário na célula H4 e retorne o resultado para a célula H5.

Uma tabela Excel contendo dados de funcionários e uma tabela de dados separada que extrairá informações da tabela primária usando VLOOKUP

Para fazer isso, na célula H5, digitarei

=VLOOKUP(H4,A2:E12,5,FALSE)

como a célula H4 contém o valor da pesquisa (ID 3264), as células A2 a E12 são onde o Excel precisa encontrar esse valor e o retorno correspondente, a quinta coluna (o país) é o array em que o resultado será encontrado, e eu quero uma correspondência exata (FALSO).

Não há necessidade de contar colunas

Uma diferença importante entre VLOOKUP e XLOOKUP é que o primeiro exige que eu especifique um número de índice da coluna onde o resultado será encontrado, enquanto o último não. Isso ocorre porque VLOOKUP combina as matrizes de pesquisa e retorno em um argumento, enquanto XLOOKUP as define em dois argumentos separados.

PROCV

Ter que especificar o número do índice da coluna em VLOOKUP pode levar a vários problemas:

  • É fácil acidentalmente contar incorretamente as colunas, especialmente se sua matriz de pesquisa tiver centenas de colunas.

  • Adicionar ou remover colunas pode afetar a precisão do número do índice da coluna.

  • A matriz de pesquisa deve estar na coluna mais à esquerda e a matriz de retorno deve estar à direita. Isso restringe a versatilidade do VLOOKUP.

XLOOKUP

Por outro lado, XLOOKUP contém o array de pesquisa como um argumento separado, o que significa que você pode apreciar os seguintes benefícios:

  • Não há contagem envolvida! Basta usar o mouse para selecionar a matriz de retorno quando chegar a essa parte da fórmula. Isso economiza tempo e ajuda na precisão.

  • Como a matriz de retorno está dentro de um intervalo especificado de células, remover ou adicionar colunas à planilha não afetará a fórmula XLOOKUP.

  • A matriz de retorno pode estar em qualquer lado da matriz de pesquisa, o que significa que XLOOKUP é mais versátil que VLOOKUP.

Opções de correspondência mais aproximadas

Tanto VLOOKUP quanto XLOOKUP podem retornar uma correspondência exata (o valor correspondente exato em uma linha) e uma correspondência aproximada (um valor correspondente próximo).

PROCV

Mais especificamente, a correspondência aproximada de VLOOKUP (indicada por TRUE na fórmula) pesquisa a matriz de pesquisa até encontrar um valor maior que o valor de pesquisa. Em seguida, ele retorna o valor que está uma linha acima.

Considere a pontuação de 65 do Aluno D no exemplo abaixo. VLOOKUP pega o valor de pesquisa 65, analisa a matriz de pesquisa, encontra o primeiro valor maior que o valor de pesquisa (nesse caso, 70) e retorna a nota da linha acima (nota C).

Um exemplo de VLOOKUP sendo usado no Excel.

Isto apresenta duas desvantagens. Primeiro, a matriz de pesquisa deve ser listada em ordem crescente. Segundo, preciso adicionar uma linha FAIL à matriz de pesquisa, pois não tenho a opção em VLOOKUP de indicar um argumento não correspondente.

XLOOKUP

Por outro lado, XLOOKUP oferece três alternativas para a correspondência aproximada unidimensional do VLOOKUP:

  • -1: retorna o próximo menor valor na matriz de pesquisa se não houver correspondência exata.

  • 1: retorna o próximo maior valor na matriz de pesquisa se não houver correspondência exata.

  • 2: usa curingas para permitir pesquisas mais flexíveis.

Novamente, tomemos o Aluno D como exemplo. Com uma pontuação de 65, o Excel verá que o próximo menor valor na matriz de pesquisa é 60 e o próximo maior valor é 70. Como o aluno ainda não atingiu o limite para a nota B (70), preciso do Excel para pegue o próximo menor valor na matriz de pesquisa (60) para retornar a nota C da matriz de retorno. Então, vou digitar -1 como a opção de correspondência na fórmula.

Um exemplo de XLOOKUP sendo usado no Excel.

Isso significa que a matriz de pesquisa não precisa estar em ordem – o Excel vasculha toda a matriz de pesquisa para encontrar os valores mais altos ou mais baixos mais próximos, se não houver uma correspondência exata. Também posso omitir a linha FAIL da minha matriz de pesquisa porque, se a pontuação de um aluno não corresponder a nenhuma nota, posso usar o quarto argumento na sintaxe XLOOKUP para retornar a palavra FAIL.

Mais modos de pesquisa (direções)

Enquanto VLOOKUP pesquisa do primeiro ao último, retornando o primeiro valor correspondente, XLOOKUP oferece quatro opções de pesquisa.

PROCV

Na maioria dos cenários de pesquisa, pesquisar a matriz de pesquisa do primeiro ao último retornará os resultados necessários. Por exemplo, se você tiver um diretório de números de telefone e nomes de pessoas, usar VLOOKUP para localizar o número de telefone com base no nome inserido funcionará perfeitamente, pois o nome dessa pessoa provavelmente aparecerá apenas uma vez.

XLOOKUP

No entanto, XLOOKUP permite escolher a orientação da pesquisa:

  • 1: Pesquise do primeiro ao último

  • -1: Pesquise do último ao primeiro

  • 2: Pesquisa binária (com a matriz de pesquisa em ordem crescente)

  • -2 Pesquisa binária (com a matriz de pesquisa em ordem decrescente)

A vantagem de uma pesquisa do último ao primeiro é que você pode encontrar a ocorrência mais recente de um valor em uma matriz de pesquisa listada em ordem de data. Para conseguir isso com VLOOKUP, você teria que primeiro inverter a ordem dos dados.

Definir a saída de erro

Um recurso realmente útil do XLOOKUP é o “argumento se não encontrado”, que o VLOOKUP não possui.

PROCV

Se um valor não for encontrado em uma fórmula VLOOKUP de correspondência exata, o Excel retornará a temida mensagem de erro #N/A. Para corrigir isso, sempre incorporei funções VLOOKUP na função IFERROR para poder definir a saída se VLOOKUP não encontrar uma correspondência.

=IFERROR(VLOOKUP(B6,$E$2:$F$8,2,TRUE)," ")

​​Embora esta seja uma solução razoável, ela torna a escrita de fórmulas muito mais complexa e pode ocultar problemas que podem afetar a precisão da sua análise de dados.

XLOOKUP

Como o XLOOKUP já vem com um argumento “se não encontrado”, você pode definir o que acontece se o valor não aparecer na pesquisa, evitando que você tenha que incorporar a fórmula dentro do IFERROR.

Retornar uma matriz derramada

Uma das propriedades mais teimosas do VLOOKUP é que ele só pode retornar uma única correspondência, enquanto o XLOOKUP pode retornar um intervalo.

XLOOKUP

Neste exemplo, digitando

=XLOOKUP(I1,A2:A7,B2:F7)

procura o valor na célula I1 (neste caso, Quizpicable Me), procura esse valor nas células A2 a A7 e retorna todos os valores correspondentes como uma matriz dividida.

Uma planilha do Excel mostrando o uso da função XLOOKUP para criar uma matriz derramada

PROCV

Se eu tentasse replicar isso usando VLOOKUP, digitaria

=VLOOKUP(I1,A2:F7,2:6)

mas isso retorna um #REF! erro porque o terceiro argumento (número de índice da coluna) pode ser apenas um único dígito, não um intervalo. Isso significa que XLOOKUP é muito mais adaptável, pois pode retornar um único valor ou um intervalo, dependendo dos parâmetros adicionados à fórmula.


Como as versões anteriores a 2019 do Excel não suportam XLOOKUP, não descarte VLOOKUP e HLOOKUP completamente! Ainda pode haver casos em que você precise usá-los, como se você estivesse enviando uma planilha para alguém que não atualiza seu pacote Office há alguns anos.