Cuprins
În acest tutorial, vom vedea cum să folosim funcțiile IFERROR și VLOOKUP împreună pentru a prinde și a gestiona diferite erori. În plus, veți învăța cum să faceți vlookup-uri secvențiale în Excel, prin anidarea mai multor funcții IFERROR una peste alta.
Excel VLOOKUP și IFERROR - aceste două funcții pot fi destul de greu de înțeles separat, darămite atunci când sunt combinate. În acest articol, veți găsi câteva exemple ușor de urmat care abordează utilizări comune și ilustrează clar logica formulelor.
Dacă nu aveți prea multă experiență cu funcțiile IFERROR și VLOOKUP, poate fi o idee bună să vă familiarizați mai întâi cu elementele de bază ale acestora, urmând linkurile de mai sus.
Formula IFERROR VLOOKUP pentru a gestiona #N/A și alte erori
Atunci când Excel Vlookup nu reușește să găsească o valoare de căutare, se aruncă o eroare #N/A, ca aceasta:
În funcție de nevoile dvs. de afaceri, este posibil să doriți să mascați eroarea cu propriul text, zero sau o celulă goală.
Exemplul 1. IFERROR cu formula VLOOKUP pentru a înlocui erorile cu propriul text
Dacă doriți să înlocuiți notația de eroare standard cu textul dvs. personalizat, includeți formula VLOOKUP în IFERROR și introduceți orice text doriți în al doilea argument ( value_if_error ), de exemplu "Not found":
IFERROR(VLOOKUP( ... ), "Nu s-a găsit")Cu valoarea de căutare în B2 în tabelul principal și intervalul de căutare A2:B4 în tabelul de căutare, formula are următoarea formă:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "Not found")
Captura de ecran de mai jos arată formula noastră Excel IFERROR VLOOKUP în acțiune:
Rezultatul pare mult mai ușor de înțeles și mult mai puțin intimidant, nu-i așa?
În mod similar, puteți utiliza INDEX MATCH împreună cu IFERROR:
=IFERROR(INDEX('Lookup table'!$B$2:$B$5,MATCH(B2,'Lookup table'!$A$2:$A$5,0)), "Not found")
Formula IFERROR INDEX MATCH este deosebit de utilă atunci când doriți să extrageți valori dintr-o coloană care se află în stânga coloanei de căutare (left lookup) și să returnați propriul text atunci când nu se găsește nimic.
Exemplul 2. IFERROR cu VLOOKUP pentru a returna un gol sau 0 dacă nu se găsește nimic
Dacă nu doriți să afișați nimic atunci când valoarea de căutare nu este găsită, cereți ca IFERROR să afișeze un mesaj de tip șir gol (""):
IFERROR(VLOOKUP( ... ),"")În exemplul nostru, formula este următoarea:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "")
După cum puteți vedea, nu returnează nimic atunci când valoarea de căutare nu se află în lista de căutare.
Dacă doriți să înlocuiți eroarea cu valoarea zero , puneți 0 în ultimul argument:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), 0)
Cuvânt de precauție! Funcția Excel IFERROR prinde toate tipurile de erori, nu numai #N/A. Este bună sau rea? Totul depinde de obiectivul dvs. Dacă doriți să mascați toate erorile posibile, Vlookup IFERROR este calea de urmat. Dar poate fi o tehnică neînțeleaptă în multe situații.
De exemplu, dacă ați creat un interval denumit pentru datele tabelului dvs. și ați scris greșit acest nume în formula Vlookup, IFERROR va detecta o eroare #NAME? și o va înlocui cu "Nu s-a găsit" sau cu orice alt text pe care îl furnizați. Ca urmare, este posibil să nu știți niciodată că formula dvs. furnizează rezultate greșite decât dacă observați dvs. înșivă greșeala de scriere. În acest caz, o abordare mai rezonabilă ar fi detectarea numai a erorilor #N/A.Pentru aceasta, utilizați formula IFNA Vlookup în Excel 2013 și versiunile ulterioare, IF ISNA VLOOKUP în toate versiunile Excel.
Concluzia este: fiți foarte atent atunci când alegeți un partener pentru formula VLOOKUP :)
Nest IFERROR în cadrul VLOOKUP pentru a găsi întotdeauna ceva
Imaginați-vă următoarea situație: căutați o anumită valoare într-o listă și nu o găsiți. Ce opțiuni aveți? Fie primiți o eroare N/A, fie afișați un mesaj propriu. De fapt, există o a treia opțiune - dacă vlookup-ul principal se poticnește, căutați altceva care este cu siguranță acolo!
Continuând cu exemplul nostru, să creăm un fel de tablou de bord pentru utilizatorii noștri care să le arate numărul de extensie al unui anumit birou. Ceva de genul acesta:
Deci, cum puteți extrage extensia din coloana B pe baza numărului de birou din D2? Cu această formulă obișnuită Vlookup:
=VLOOKUP($D$2,$A$2:$B$7,2,FALSE)
Și va funcționa bine atâta timp cât utilizatorii introduc un număr valid în D2. Dar ce se întâmplă dacă un utilizator introduce un număr care nu există? În acest caz, lăsați-l să sune la biroul central! Pentru aceasta, încorporați formula de mai sus în fișierul valoare de IFERROR, și puneți un alt Vlookup în value_if_error argument.
Formula completă este un pic cam lungă, dar funcționează perfect:
=IFERROR(VLOOKUP("office"&$D$2,$A$2:$B$7,2,FALSE),VLOOKUP("central office",$A$2:$B$7,2,FALSE)))
Dacă numărul de birou este găsit, utilizatorul primește numărul de extensie corespunzător:
Dacă nu se găsește numărul biroului, se afișează extensia biroului central:
Pentru a face formula un pic mai compactă, puteți folosi o abordare diferită:
În primul rând, verificați dacă numărul din D2 este prezent în coloana de căutare (vă rugăm să observați că am stabilit col_index_num la 1 pentru ca formula să caute și să returneze valoarea din coloana A): VLOOKUP(D2,$A$2:$B$7,1,FALSE)
Dacă nu se găsește numărul de birou specificat, atunci căutăm șirul de caractere "central office", care se află cu siguranță în lista de căutare. Pentru aceasta, înfășurați primul VLOOKUP în IFERROR și aninați întreaga combinație în cadrul unei alte funcții VLOOKUP:
=VLOOKUP(IFERROR(VLOOKUP(D2,$A$2:$B$7,1,FALSE), "birou central"),$A$2:$B$7,2)
Ei bine, o formulă ușor diferită, același rezultat:
Dar care este motivul pentru care trebuie să căutați "birou central", mă veți întreba. De ce nu furnizați numărul de extensie direct în IFERROR? Pentru că extensia se poate schimba la un moment dat în viitor. Dacă se întâmplă acest lucru, va trebui să vă actualizați datele o singură dată în tabelul sursă, fără a vă îngrijora de actualizarea fiecărei formule VLOOKUP.
Cum să faceți VLOOKUP-uri secvențiale în Excel
În situațiile în care trebuie să efectuați așa-numita secvențial sau înlănțuit Vlookups în Excel, în funcție de succesul sau eșecul unei căutări anterioare, aninați două sau mai multe funcții IFERROR pentru a rula Vlookups unul câte unul:
IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), "Nu s-a găsit"))))Formula funcționează după următoarea logică:
Dacă primul VLOOKUP nu găsește nimic, primul IFERROR prinde o eroare și rulează un alt VLOOKUP. Dacă al doilea VLOOKUP eșuează, al doilea IFERROR prinde o eroare și rulează al treilea VLOOKUP, și așa mai departe. Dacă toate Vlookup-urile se împiedică, ultimul IFERROR returnează mesajul dumneavoastră.
Această formulă IFERROR imbricata este deosebit de utilă atunci când trebuie să faceți Vlookup între mai multe foi așa cum se arată în exemplul de mai jos.
Să spunem că aveți trei liste de date omogene în trei foi de calcul diferite (numere de birou în acest exemplu) și doriți să obțineți o extensie pentru un anumit număr.
Presupunând că valoarea de căutare se află în celula A2 din foaia curentă, iar intervalul de căutare este A2:B5 în 3 foi de calcul diferite (Nord, Sud și Vest), următoarea formulă funcționează de minune:
=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"))))
Astfel, formula noastră "Vlookups înlănțuite" caută în trei foi diferite în ordinea în care le-am introdus în formulă și aduce prima potrivire pe care o găsește:
Acesta este modul în care utilizați IFERROR cu VLOOKUP în Excel. Vă mulțumesc pentru lectură și sper să ne vedem pe blog săptămâna viitoare!
Descărcări disponibile
Excel IFERROR VLOOKUP exemple de formule IFERROR VLOOKUP