Táboa de contidos
Neste titorial, analizaremos como usar as funcións IFERROR e VLOOKUP xuntos para capturar e xestionar diferentes erros. Ademais, vai aprender a facer vlookups secuenciais en Excel aniñando varias funcións IFERROR unha sobre outra.
Excel VLOOKUP e IFERROR: estas dúas funcións poden ser bastante difíciles de entender por separado, e moito menos cando se combinan. Neste artigo, atoparás algúns exemplos fáciles de seguir que abordan os usos comúns e ilustran claramente a lóxica das fórmulas.
Se non tes moita experiencia coas funcións IFERROR e VLOOKUP, pode ser é unha boa idea revisar primeiro os seus conceptos básicos seguindo as ligazóns anteriores.
IFERROR VLOOKUP fórmula para xestionar #N/A e outros erros
Cando Excel Vlookup non pode atopar un valor de busca, arroxa un erro #N/D, como este:
En función das necesidades da túa empresa, pode querer disfrazar o erro co teu propio texto, cero , ou unha cela en branco.
Exemplo 1. IFERROR coa fórmula BUSCARV para substituír os erros polo seu propio texto
Se quere substituír a notación do erro estándar polo seu texto personalizado, inclúa o seu texto personalizado. Fórmula BUSCARV en IFERROR e escriba o texto que desexe no segundo argumento ( value_if_error ), por exemplo "Not found":
IFERROR(VLOOKUP( …),"Not atopado")Co valor de busca en B2 na táboa principal e o intervalo de busca A2:B4 na buscatáboa, a fórmula toma a seguinte forma:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "Not found")
A seguinte captura de pantalla mostra a nosa fórmula de BUSCAR V IFERROR de Excel en acción:
O o resultado parece moito máis comprensible e moito menos intimidante, non é?
De forma semellante, podes usar INDEX MATCH xunto con IFERROR:
=IFERROR(INDEX('Lookup table'!$B$2:$B$5,MATCH(B2,'Lookup table'!$A$2:$A$5,0)), "Not found")
O IFERROR A fórmula INDEX MATCH é especialmente útil cando queres extraer valores dunha columna que se atopa á esquerda da columna de busca (busca á esquerda) e devolver o teu propio texto cando non se atopa nada.
Exemplo 2. IFERROR con VLOOKUP para devolver en branco ou 0 se non se atopa nada
Se non queres mostrar nada cando non se atopa o valor de busca, fai que IFERROR mostre unha cadea baleira (""):
IFERROR(LOOKUP( …),"")No noso exemplo, a fórmula é o seguinte:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "")
Como podes ver, non devolve nada cando o valor de busca non está na lista de busca.
Se queres substituír o erro polo valor cero , pon 0 no último a rgument:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), 0)
Palabra de precaución! A función IFERROR de Excel detecta todo tipo de erros, non só #N/A. É bo ou malo? Todo depende do teu obxectivo. Se queres enmascarar todos os erros posibles, IFERROR Vlookup é o camiño a seguir. Pero pode ser unha técnica pouco sensata en moitas situacións.
Por exemplo, se creaches un intervalo con nome para os datos da túa táboa e escribiu mal ese nome no teuFórmula de busca V, IFERROR atrapará un #NAME? erro e substitúeo por "Non atopado" ou calquera outro texto que proporcione. Como resultado, é posible que nunca saibas que a túa fórmula está dando resultados incorrectos a menos que detectes o erro tipográfico. Neste caso, un enfoque máis razoable sería atrapar só os erros #N/A. Para iso, use a fórmula IFNA Vlookup en Excel 2013 e superior, IFNA VLOOKUP en todas as versións de Excel.
A conclusión é: teña moito coidado ao elixir un compañeiro para a súa fórmula VLOOKUP :)
Aniña IFERROR dentro de BUSCARV para atopar sempre algo
Imaxina a seguinte situación: buscas un valor específico nunha lista e non o atopas. Que opcións tes? Obtén un erro N/A ou mostra a túa propia mensaxe. En realidade, hai unha terceira opción: se a túa busca de vós principal tropeza, busca outra cousa que definitivamente estea aí!
Levando o noso exemplo máis alá, imos crear algún tipo de panel de control para os nosos usuarios que lles mostrará unha extensión. número dunha oficina específica. Algo así:
Entón, como se extrae a extensión da columna B en función do número de oficina en D2? Con esta fórmula normal de Vlookup:
=VLOOKUP($D$2,$A$2:$B$7,2,FALSE)
E funcionará ben sempre que os teus usuarios introduzan un número válido en D2. Pero que pasa se un usuario introduce algún número que non existe? Neste caso, que chamen á oficina central! Para iso, insire a fórmula anterior no ficheiro valor argumento de IFERROR e pon outra Vlookup no argumento value_if_error .
A fórmula completa é un pouco longa, pero funciona perfectamente:
=IFERROR(VLOOKUP("office "&$D$2,$A$2:$B$7,2,FALSE),VLOOKUP("central office",$A$2:$B$7,2,FALSE))
Se se atopa o número de oficina, o usuario obtén o número de extensión correspondente:
Se non se atopa o número de oficina, a extensión da oficina central móstrase:
Para facer a fórmula un pouco máis compacta, podes usar un enfoque diferente:
Primeiro, comproba se o número en D2 está presente na columna de busca (ten en conta que establecemos col_index_num en 1 para que a fórmula busque e devolva o valor da columna A): VLOOKUP(D2,$A$2:$B$7,1,FALSE)
Se non se atopa o número de oficina especificado, buscamos a cadea "oficina central", que definitivamente está na lista de busca. Para iso, envolve a primeira BUSCAR V en IFERROR e aniña toda esta combinación dentro doutra función BUSCAR V:
=VLOOKUP(IFERROR(VLOOKUP(D2,$A$2:$B$7,1,FALSE),"central office"),$A$2:$B$7,2)
Ben, unha fórmula lixeiramente diferente, o mesmo resultado:
Pero cal é a razón para buscar "oficina central", pode preguntarme. Por que non proporciona o número de extensión directamente en IFERROR? Porque a extensión pode cambiar nalgún momento no futuro. Se isto ocorre, terá que actualizar os seus datos só unha vez na táboa de orixe, sen preocuparse de actualizar cada unha das súas fórmulas VLOOKUP.
Como facer VLOOKUP secuenciais en Excel
En situacións nas que necesitasrealice as chamadas buscas virtuales secuenciais ou encadeadas en Excel, dependendo de se unha busca anterior se realizou correctamente ou non, aniñe dúas ou máis funcións IFERROR para executar as súas Vlookups unha por unha:
SE ERRO(BUSCARV( …), SE ERROR(BUSCARV( …), SE ERROR(BUSCARV( …),"Non atopado")))O A fórmula funciona coa seguinte lóxica:
Se a primeira BUSCAR V non atopa nada, o primeiro IFERROR atrapa un erro e executa outra BUSCAR V. Se a segunda VLOOKUP falla, o segundo IFERROR detecta un erro e executa a terceira VLOOKUP, etc. Se todas as buscas V tropezan, o último IFERROR devolve a túa mensaxe.
Esta fórmula aniñada IFERROR é especialmente útil cando tes que buscar V en múltiples follas como se mostra no seguinte exemplo.
Digamos que tes tres listas de datos homoxéneos en tres follas de traballo diferentes (números de oficina neste exemplo) e queres obter unha extensión para un determinado número.
Supoñendo que o valor de busca está na cela A2 na folla actual e o intervalo de busca é A2:B5 en 3 follas de traballo diferentes (Norte, Sur e Oeste), a seguinte fórmula funciona moi ben:
=IFERROR(VLOOKUP(A2,North!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,South!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,West!$A$2:$B$5,2,FALSE),"Not found")))
Entón, o noso "encadeado A fórmula "Vlookups" busca en tres follas diferentes na orde en que as aniñamos na fórmula e trae a primeira coincidencia que atopa:
Así é como usa IFERROR con VLOOKUP en Excel. Grazas por ler e espero verteno noso blogue a próxima semana!
Descargas dispoñibles
Exemplos de fórmulas de BUSCAR V IFERROR de Excel