Neste tutorial, vamos ver como usar as funções IFERROR e VLOOKUP juntas para trap e lidar com diferentes erros. Além disso, você aprenderá como fazer vlookups seqüenciais no Excel aninhando várias funções IFERROR umas sobre as outras.

Excel VLOOKUP e IFERROR – estas duas funções podem ser bastante difíceis de entender separadamente, muito menos quando combinadas. Neste artigo, você encontrará alguns exemplos fáceis de seguir que abordam usos comuns e ilustram claramente a lógica das fórmulas.

Se você não tem muita experiência com as funções IFERROR e VLOOKUP, pode ser uma boa idéia revisar o básico delas primeiro, seguindo os links acima.

  • IFERROR com VLOOKUP para lidar com erros
    • VLOOKUP e retornar o seu próprio texto em vez do erro N/A
    • VLOOKUP e retornar célula em branco ou zero se nada for encontrado
  • Nest IFERROR dentro do VLOOKUP para sempre encontrar algo
  • Sequencial Vlookups com IFERRORs aninhados

IFERROR VLOOKUP fórmula para lidar com #N/A e outros erros

Quando o Excel Vlookup falha em encontrar um valor de pesquisa, atira um erro #N/A, como este:

Dependente das necessidades do seu negócio, você pode querer disfarçar o erro com o seu próprio texto, zero, ou uma célula em branco.

Exemplo 1. Iferror Vlookup fórmula para substituir todos os erros pelo seu próprio texto

Se você gostaria de substituir a notação de erro padrão pelo seu texto personalizado, envolva sua fórmula VLOOKUP em IFERROR, e digite qualquer texto que você queira no 2º argumento (value_if_error), por exemplo “Não encontrado”:

IFERROR(VLOOKUP(…), “Não encontrado”)

Com o valor de pesquisa em B2 na tabela Principal e o intervalo de pesquisa A2:B4 na tabela Consulta, a fórmula assume a seguinte forma:

=IFERROR(VLOOKUP(B2,'Lookup table'!$A:$B, 2, FALSE), "Not found")

A imagem abaixo mostra nossa fórmula de IFERROR VLOOKUP em ação:
>

O resultado parece muito mais compreensível e muito menos intimidante, não é?

De maneira semelhante, você pode usar INDEX MATCH junto com IFERROR:

=IFERROR(INDEX('Lookup table'!$B:$B,MATCH(B2,'Lookup table'!$A:$A,0)), "Not found")>

A fórmula de IFERROR INDEX MATCH é especialmente útil quando você quer puxar valores de uma coluna que fica à esquerda da coluna de pesquisa (pesquisa à esquerda), e retornar seu próprio texto quando nada for encontrado.

Exemplo 2. IFERROR com VLOOOKUP para retornar em branco ou 0 se nada for encontrado

Se você não quiser mostrar nada quando o valor da pesquisa não for encontrado, faça com que IFERROR exiba uma string vazia (“”):

IFERROR(VLOOKUP(…),””)

No nosso exemplo, a fórmula vai da seguinte forma:

=IFERROR(VLOOKUP(B2,'Lookup table'!$A:$B, 2, FALSE), "") >

Como você pode ver, não retorna nada quando o valor de pesquisa não está na lista de pesquisa.

Se você quiser substituir o erro pelo valor zero, coloque 0 no último argumento:

=IFERROR(VLOOKUP(B2,'Lookup table'!$A:$B, 2, FALSE), 0)

>Palavra de cuidado! A função IFERROR do Excel captura todos os tipos de erros, não apenas #N/A. É bom ou ruim? Tudo depende do seu objetivo. Se você quiser mascarar todos os erros possíveis, IFERROR Vlookup é o caminho a seguir. Mas pode ser uma técnica insensata em muitas situações.

Por exemplo, se você criou um intervalo nomeado para os dados da sua tabela, e escreveu mal esse nome na sua fórmula do Vlookup, IFERROR irá apanhar um erro #NAME? e substitui-lo por “Not found” ou qualquer outro texto que você forneça. Como resultado, você pode nunca saber que a sua fórmula está apresentando resultados errados, a menos que você mesmo identifique o erro de digitação. Em tal caso, uma abordagem mais razoável seria apenas apanhar os erros #N/A. Para isso, use a fórmula IFNA Vlookup no Excel para o Office 365, Excel 209, Excel 2016 e Excel 2013, IF ISNA VLOOKUP em todas as versões do Excel.

O resultado final é: tenha muito cuidado ao escolher um companheiro para a sua fórmula VLOOKUP 🙂

Nest IFERROR dentro da VLOOKUP para sempre encontrar algo

Imagine a seguinte situação: você procura um valor específico em uma lista e não o encontra. Que escolhas você tem? Ou você recebe um erro N/A ou mostra sua própria mensagem. Na verdade, existe uma terceira opção – se o seu vlookup primário tropeçar, então procure por outra coisa que esteja definitivamente lá!

Vejamos o nosso exemplo, vamos criar algum tipo de dashboard para os nossos utilizadores que lhes mostrará um número de extensão de um escritório específico. Algo como isto:

Então, como se puxa a extensão da coluna B com base no número do escritório em D2? Com esta fórmula regular Vlookup:

=VLOOKUP($D,$A:$B,2,FALSE)

E funcionará bem desde que os seus usuários digitem um número válido em D2. Mas e se um usuário inserir um número que não existe? Neste caso, deixe-os ligar para o escritório central! Para isso, você incorpora a fórmula acima no argumento de valor de IFERROR, e coloca outro Vlookup no argumento value_if_error.

A fórmula completa é um pouco longa, mas funciona perfeitamente:

=IFERROR(VLOOKUP("office "&$D,$A:$B,2,FALSE),VLOOKUP("central office",$A:$B,2,FALSE))

Se o número do escritório for encontrado, o usuário obtém o número da extensão correspondente:
>

Se o número do escritório não for encontrado, a extensão do escritório central é exibida:

Para tornar a fórmula um pouco mais compacta, você pode usar uma abordagem diferente:

Primeiro, verifique se o número em D2 está presente na coluna de pesquisa (observe que definimos col_index_num como 1 para que a fórmula procure e retorne o valor da coluna A): VLOOKUP(D2,$A$2:$B$7,1,FALSE)

Se o número de escritório especificado não for encontrado, então procuramos pela string “central office”, que está definitivamente na lista de pesquisa. Para isso, você embrulha o primeiro VLOOKUP em IFERROR e aninha toda essa combinação dentro de outra função VLOOKUP:

=VLOOKUP(IFERROR(VLOOKUP(D2,$A:$B,1,FALSE),"central office"),$A:$B,2)

Bem, uma fórmula ligeiramente diferente, o mesmo resultado:

Mas qual é o motivo para procurar “central office”, você pode me perguntar. Por que não fornecer o número da extensão diretamente no IFERROR? Porque a extensão pode mudar em algum momento no futuro. Se isso acontecer, você terá que atualizar seus dados apenas uma vez na tabela de origem, sem se preocupar em atualizar cada uma de suas fórmulas de VLOOKUP.

Como fazer VLOOKUPs sequenciais no Excel

Em situações em que você precisa executar os chamados Vlookups sequenciais ou encadeados no Excel, dependendo se uma pesquisa anterior foi bem sucedida ou falhou, aninhe duas ou mais funções IFERROR para executar seus Vlookups um a um:

IFERROR(VLOOKUP(…), IFERROR(VLOOKUP(…), IFERROR(VLOOKUP(…), “Não encontrado”))

A fórmula funciona com a seguinte lógica:

Se o primeiro VLOOKUP não encontrar nada, o primeiro IFERROR prende um erro e executa outro VLOOKUP. Se o segundo VLOOOKUP falhar, o segundo IFERROR captura um erro e executa o terceiro VLOOKUP, e assim por diante. Se todos os Vlookups tropeçarem, o último IFERROR retorna sua mensagem.

Esta fórmula de IFERROR aninhada é especialmente útil quando você tem que Vlookup em várias folhas como mostrado no exemplo abaixo.

Por exemplo, você tem três listas de dados homogêneos em três folhas de trabalho diferentes (números de escritório neste exemplo), e você quer obter uma extensão para um determinado número.

Assumindo que o valor de pesquisa está na célula A2 na folha atual, e o intervalo de pesquisa é A2:B5 em 3 planilhas diferentes (Norte, Sul e Oeste), a seguinte fórmula funciona como um deleite:

=IFERROR(VLOOKUP(A2,North!$A:$B,2,FALSE), IFERROR(VLOOKUP(A2,South!$A:$B,2,FALSE), IFERROR(VLOOKUP(A2,West!$A:$B,2,FALSE),"Not found")))

Então, nossa fórmula “Vlookups encadeados” procura nas três planilhas na ordem em que as aninhamos na fórmula, e traz o primeiro resultado encontrado:
>

É assim que você usa IFERROR com VLOOKUP no Excel. Agradeço a leitura e espero vê-lo em nosso blog na próxima semana!

Disponíveis para download

Exemplos de fórmula do IFERROR com VLOOKUP no Excel

Você também pode estar interessado em

  • Função IFERROR com exemplos de fórmula
  • Usando IF com VLOOKUP no Excel
  • Tutorial do VLOOKUP para iniciantes

Deixe uma resposta

O seu endereço de email não será publicado.