Cuprins
VLOOKUP-ul dvs. extrage date greșite sau nu reușiți să îl faceți să funcționeze deloc? Acest tutorial vă arată cum puteți repara rapid erorile comune ale VLOOKUP și cum puteți depăși principalele sale limitări.
În câteva articole anterioare, am explorat diferite aspecte ale funcției Excel VLOOKUP. Dacă ne-ați urmărit îndeaproape, până acum ar trebui să fiți un expert în acest domeniu :)
Cu toate acestea, nu este fără motiv faptul că mulți specialiști Excel consideră că VLOOKUP este una dintre cele mai complicate funcții Excel. Are o tonă de limitări, care sunt sursa diferitelor probleme și erori.
În acest articol, veți găsi explicații simple ale principalelor cauze ale erorilor VLOOKUP, cum ar fi #N/A, #NAME și #VALUE, precum și soluțiile și remedierile acestora. Vom începe cu cele mai evidente motive pentru care VLOOKUP nu funcționează, așa că ar putea fi o idee bună să verificați în ordine pașii de depanare de mai jos.
Remedierea erorii #N/A în VLOOKUP
În formulele VLOOKUP, mesajul de eroare #N/A (care înseamnă "nu este disponibil") este afișat atunci când Excel nu poate găsi o valoare de căutare. Există mai multe motive pentru care se poate întâmpla acest lucru.
1. Valoarea de căutare este scrisă greșit
Întotdeauna este o idee bună să verificați mai întâi lucrul cel mai evident : ) Greșelile apar frecvent atunci când lucrați cu seturi de date foarte mari, formate din mii de rânduri, sau când o valoare de căutare este introdusă direct în formulă.
2. #N/A în VLOOKUP cu potrivire aproximativă
Dacă formula dvs. caută cea mai apropiată potrivire, ( range_lookup setat la TRUE sau omis), eroarea #N/A poate apărea în două cazuri:
- Valoarea de căutare este mai mică decât cea mai mică valoare din matricea de căutare.
- Coloana de căutare nu este sortată în ordine crescătoare.
3. #N/A în VLOOKUP cu potrivire exactă
Dacă sunteți în căutare de potrivire exactă ( range_lookup setat la FALSE), eroarea #N/A apare atunci când nu se găsește o valoare exact egală cu valoarea de căutare. Pentru mai multe informații, consultați VLOOKUP potrivire exactă vs. potrivire aproximativă.
4. Coloana de căutare nu este cea mai din stânga coloană din matricea tabelului
Una dintre cele mai semnificative limitări ale Excel VLOOKUP este că nu poate privi în stânga sa. În consecință, o coloană de căutare trebuie să fie întotdeauna coloana coloana din stânga în matricea tabelului. În practică, uităm adesea de acest lucru și ne confruntăm cu erori #N/A.
Soluție : Dacă nu este posibil să restructurați datele astfel încât coloana de căutare să fie cea mai din stânga, puteți utiliza funcțiile INDEX și MATCH împreună ca alternativă la VLOOKUP. Iată un exemplu de formulă: INDEX MATCH formula pentru a căuta valori în stânga.
5. Numerele sunt formatate ca text
O altă sursă comună de erori #N/A în formulele VLOOKUP este reprezentată de numerele formatate ca text, fie în tabelul principal, fie în tabelul de căutare.
Acest lucru se întâmplă de obicei atunci când importați date dintr-o bază de date externă sau dacă ați tastat un apostrof înaintea unui număr pentru a afișa zerouri de început.
Iată indicatorii cei mai evidenți ai numerelor formatate ca text:
Soluție: Selectați toate numerele problematice, faceți clic pe pictograma de eroare și alegeți Conversia în Număr din meniul contextual. Pentru mai multe informații, consultați Cum se convertește un text în număr în Excel.
6. Spații la început sau la sfârșit
Aceasta este cauza cea mai puțin evidentă a erorii VLOOKUP #N/A, deoarece ochiul uman poate cu greu să detecteze aceste spații suplimentare, în special atunci când se lucrează cu seturi de date mari, în care majoritatea intrărilor sunt situate sub derulare.
Soluția 1: Spații suplimentare în valoarea de căutare
Pentru a asigura funcționarea corectă a formulei VLOOKUP, înfășurați valoarea de căutare în funcția TRIM:
=VLOOKUP(TRIM(E1), A2:C10, 2, FALSE)
Soluția 2: Spații suplimentare în coloana de căutare
În cazul în care apar spații suplimentare în coloana de căutare, nu există o modalitate ușoară de a evita erorile #N/A în VLOOKUP. În schimb, puteți utiliza o combinație de funcții INDEX, MATCH și TRIM ca o formulă de matrice:
=INDEX(B2:B10, MATCH(TRUE, TRIM(A$2:A$10)=TRIM(E1), 0))
Deoarece aceasta este o formulă de matrice, nu uitați să apăsați Ctrl + Shift + Enter pentru a o completa în mod corespunzător (în Excel 365 și Excel 2021, unde matricele sunt native, aceasta funcționează, de asemenea, ca o formulă obișnuită).
Sfat. O alternativă rapidă este rularea instrumentului Trim Spaces care va elimina în câteva secunde spațiile în exces atât în tabelele de căutare, cât și în tabelele principale, ceea ce va face ca formulele VLOOKUP să fie fără erori.
Eroare #VALUE! în formulele VLOOKUP
În general, Microsoft Excel afișează eroarea #VALUE! în cazul în care o valoare utilizată în formulă este de un tip de date greșit. În ceea ce privește VLOOKUP, există două surse comune ale erorii VALUE!
1. Valoarea căutării depășește 255 de caractere
Vă rugăm să rețineți că VLOOKUP nu poate căuta valori care conțin mai mult de 255 de caractere. Dacă valorile de căutare depășesc această limită, va fi afișată o eroare #VALUE!
Soluție : Folosiți în schimb o formulă INDEX MATCH. În cazul nostru, această formulă funcționează perfect:
=INDEX(B2:B7, MATCH(TRUE, INDEX(A2:A7= E1, 0), 0))
2. Nu este furnizată calea completă către registrul de lucru de căutare
Dacă extrageți date dintr-un alt registru de lucru, trebuie să includeți calea completă către acesta. Mai exact, trebuie să includeți numele registrului de lucru, inclusiv extensia, între [paranteze drepte] și să specificați numele foii de calcul urmat de semnul exclamării. Dacă numele registrului de lucru sau numele foii de calcul, sau ambele, conțin spații sau orice caractere nealfabetice, calea de acces trebuie să fie între ghilimele simple.
Iată structura tabel_array argument pentru Vlookup dintr-un alt registru de lucru:
'[nume registru de lucru]nume foaie'!interval
O formulă reală ar putea fi similară cu aceasta:
=VLOOKUP($A$2,'[New Prices.xls]Sheet1'!$B:$D, 3, FALSE)
Formula de mai sus va căuta valoarea lui A2 în coloana B din Foaia1 din Prețuri noi și returnează o valoare corespunzătoare din coloana D.
Dacă lipsește vreun element din cale, formula VLOOKUP nu va funcționa și va returna eroarea #VALUE (cu excepția cazului în care registrul de lucru de căutare este deschis în prezent).
Pentru mai multe informații, vă rugăm să consultați:
- Cum să faceți referire la o altă foaie sau registru de lucru în Excel
- Cum se face Vlookup dintr-un registru de lucru diferit
3. Argumentul col_index_num este mai mic decât 1
Este greu de imaginat o situație în care cineva să introducă intenționat un număr mai mic decât 1 pentru a specifica coloana din care să se returneze valorile. Dar se poate întâmpla dacă acest argument este returnat de o altă funcție imbricata în formula VLOOKUP.
Astfel, dacă col_index_num este mai mare decât 1, formula dvs. va returna și ea eroarea #VALUE!
Dacă col_index_num este mai mare decât numărul de coloane din matricea tabelului, VLOOKUP produce eroarea #REF!.
Rezolvarea erorii VLOOKUP #NAME
Acesta este cel mai simplu caz - eroarea #NAME? apare dacă ați scris greșit din greșeală numele funcției.
Soluția este evidentă - verificați ortografia :)
Principalele cauze ale erorilor în Excel VLOOKUP
În afară de faptul că are o sintaxă destul de complicată, VLOOKUP are probabil mai multe limitări decât orice altă funcție Excel. Din cauza acestor limitări, o formulă aparent corectă poate oferi adesea rezultate diferite de cele pe care le așteptați. Mai jos veți găsi soluții pentru câteva scenarii tipice în care VLOOKUP eșuează.
VLOOKUP nu ține cont de majuscule și minuscule
Funcția VLOOKUP nu face distincție între literele de majusculă și minusculă și majusculă și le consideră identice.
Soluție : Folosiți VLOOKUP, XLOOKUP sau INDEX MATCH în combinație cu funcția EXACT care poate potrivi cazul textului. Puteți găsi explicații detaliate și exemple de formule în acest tutorial: 5 moduri de a face un Vlookup sensibil la majuscule și minuscule în Excel.
O nouă coloană a fost inserată sau eliminată din tabel
Din păcate, formulele VLOOKUP încetează să mai funcționeze de fiecare dată când o nouă coloană este ștearsă din sau adăugată la tabelul de căutare. Acest lucru se întâmplă deoarece sintaxa funcției VLOOKUP necesită definirea numărului de index al coloanei de retur. Când o nouă coloană este adăugată/eliminată din matricea tabelului, evident că acel număr de index se modifică.
Soluție : Formula INDEX MATCH vine din nou în ajutor : ) Cu INDEX MATCH, specificați separat intervalele de căutare și de returnare, astfel încât sunteți liber să ștergeți sau să inserați câte coloane doriți fără să vă faceți griji cu privire la actualizarea fiecărei formule asociate.
Referințele celulelor se modifică la copierea formulei în alte celule
Titlul oferă o explicație exhaustivă a problemei, nu-i așa?
Soluție : Utilizați întotdeauna referințe absolute (cu semnul $) pentru tabel_array de exemplu $A$2:$C$100 sau $A:$C. Puteți comuta rapid între diferitele tipuri de referințe prin apăsarea tastei F4.
VLOOKUP returnează prima valoare găsită
După cum știți deja, Excel VLOOKUP returnează prima valoare pe care o găsește. Cu toate acestea, îl puteți forța să aducă a 2-a, a 3-a, a 4-a sau orice altă apariție pe care o doriți. Există, de asemenea, o modalitate de a obține ultima potrivire sau toate potrivirile găsite.
Soluții : Exemple de formule sunt disponibile aici:
- VLOOKUP și returnează a N-a apariție
- VLOOKUP valori multiple
- Formula XLOOKUP pentru a obține ultima potrivire
De ce funcționează VLOOKUP-ul meu pentru unele celule, dar nu și pentru altele?
Atunci când formula VLOOKUP returnează datele corecte în unele celule și erori #N/A în altele, există câteva motive posibile pentru care se întâmplă acest lucru.
1. Tabloul de tablouri nu este blocat
Să presupunem că aveți această formulă în rândul 2 (de exemplu, în E2), care funcționează bine:
=VLOOKUP(D2, A2:B10, 2, FALSE)
Atunci când este copiată pe rândul 3, formula se schimbă în:
=VLOOKUP(D3, A3:B11, 2, FALSE)
Deoarece se utilizează o referință relativă pentru tabel_array , se schimbă în funcție de poziția relativă a rândului în care este copiată formula, în cazul nostru de la A2:B10 la A3:B11. Deci, dacă potrivirea se află în rândul 2, nu va fi găsită!
Soluție : Atunci când utilizați o formulă VLOOKUP pentru mai mult de o celulă, întotdeauna blochează matricea de tabele referință cu semnul $, cum ar fi $A$2:$B$10.
2. Valorile textului sau tipurile de date nu corespund
Un alt motiv comun pentru eșecul VLOOKUP este diferența dintre valoarea de căutare și o valoare similară din coloana de căutare. În unele cazuri, diferența este atât de subtilă încât este greu de observat vizual.
Soluție : Atunci când VLOOKUP returnează o eroare #N/A în timp ce puteți vedea clar valoarea de căutare în coloana de căutare și, aparent, ambele sunt scrise exact la fel, primul lucru pe care trebuie să-l faceți este să determinați cauza principală a problemei - formula sau datele sursă.
Pentru a vedea dacă cele două valori sunt identice sau diferite, efectuați o comparație directă în acest mod:
=E1=A4
Unde E1 este valoarea de căutare și A4 este o valoare identică în coloana de căutare.
În cazul în care formula returnează FALSE, înseamnă că valorile diferă într-un fel, deși arată absolut la fel.
În caz de valori numerice , cel mai posibil motiv este reprezentat de numerele formatate ca text.
În caz de valori de text Pentru a verifica acest lucru, aflați lungimea totală a celor două șiruri de caractere cu ajutorul funcției LEN:
=LEN(E1)
=LEN(A4)
Dacă numerele rezultate sunt diferite (ca în imaginea de mai jos), atunci ați identificat vinovatul - spațiile suplimentare:
Pentru a rezolva problema, fie eliminați spațiile în plus, fie utilizați această formulă INDEX MATCH TRIM ca o soluție de rezolvare.
De ce VLOOKUP-ul meu extrage date greșite?
Ar putea exista și mai multe motive pentru care VLOOKUP-ul dvs. returnează o valoare greșită:
- Mod de căutare incorect Dacă doriți o potrivire exactă, asigurați-vă că ați setat parametrul range_lookup la FALSE. Valoarea implicită este TRUE, astfel încât, dacă omiteți acest argument, VLOOKUP va presupune că sunteți în căutarea unei corespondențe aproximative și va căuta cea mai apropiată valoare care este mai mică decât valoarea de căutare.
- Coloana de căutare nu este sortată Pentru o potrivire aproximativă VLOOKUP ( range_lookup setat la TRUE) pentru a funcționa corect, prima coloană din matricea tabelului trebuie să fie sortată în ordine crescătoare, de la cea mai mică la cea mai mare.
- Dublări în coloana de căutare Dacă coloana de căutare conține două sau mai multe valori duplicate, VLOOKUP va returna prima potrivire găsită, care poate să nu fie cea la care vă așteptați.
- Coloană de retur incorectă Verificați de două ori numărul de index din cel de-al treilea argument :)
VLOOKUP nu funcționează între două foi
În primul rând, trebuie remarcat faptul că motivele comune ale erorilor #N/A, #VALUE și #REF discutate mai sus pot cauza aceleași probleme atunci când se caută de pe o altă foaie. Dacă nu este cazul, verificați următoarele puncte:
- Asigurați-vă că referința externă la o altă foaie sau la un alt registru de lucru este corectă.
- Atunci când efectuați o Vlookup dintr-un alt registru de lucru care este închisă în acest moment, verificați dacă formula dvs. conține calea completă către registrul de lucru închis.
- Dacă VLOOKUP nu se poate selecta o matrice de tabel dintr-o altă foaie de calcul (de exemplu, atunci când evidențiați un interval în foaia de căutare, nu apare nimic în fereastra tabel_array în formulă sau în caseta corespunzătoare din expertul de formule), cel mai probabil cele două foi sunt deschise în instanțe separate de Excel și nu pot comunica între ele. Pentru mai multe informații, consultați Cum să determinați ce fișiere Excel se află în ce instanță. Pentru a remedia acest lucru, închideți pur și simplu toate ferestrele Excel, apoi redeschideți foile/carte de lucru în aceeași instanță (comportamentul implicit).
Cum să Vlookup fără erori în Excel
Dacă nu doriți să vă intimidați utilizatorii cu notațiile de eroare standard din Excel, puteți afișa în schimb propriul text ușor de utilizat sau să returnați o celulă goală dacă nu se găsește nimic. Acest lucru se poate face utilizând VLOOKUP cu funcția IFERROR sau IFNA.
Prindeți toate erorile
În Excel 2007 și versiunile ulterioare, puteți utiliza funcția IFERROR pentru a verifica dacă o formulă VLOOKUP conține erori și pentru a returna propriul text (sau un șir de caractere gol) dacă orice eroare este detectată.
De exemplu:
=IFERROR(VLOOKUP(E1, A2:B10, 2, FALSE), "Oops, ceva nu a mers bine")
În Excel 2003 și versiunile anterioare, puteți utiliza formula IF ISERROR în același scop:
=IF(ISERROR(ISERROR(VLOOKUP(E1, A2:B10, 2, FALSE)), "Oops, ceva nu a mers bine", VLOOKUP(E1, A2:B10, 2, FALSE))
Pentru mai multe detalii, consultați Utilizarea IFERROR cu VLOOKUP în Excel.
Gestionați erorile #N/A
Pentru a capta numai erorile #N/A, ignorând toate celelalte tipuri de erori, utilizați funcția IFNA (în Excel 2013 și versiunile ulterioare) sau formula IF ISNA (în toate versiunile).
De exemplu:
=IFNA(VLOOKUP(E1, A2:B10, 2, FALSE), "Oops, nu s-a găsit nicio potrivire. Vă rugăm să încercați din nou!")
=IF(ISNA(VLOOKUP(E1, A2:B10, 2, FALSE)), "Oops, nu s-a găsit nicio potrivire. Vă rugăm să încercați din nou!", VLOOKUP(E1, A2:B10, 2, FALSE))
Sperăm că acest tutorial vă va ajuta să scăpați de erorile VLOOKUP și să vă faceți formulele să funcționeze așa cum vă doriți.