Kazalo
Vaš VLOOKUP vleče napačne podatke ali pa sploh ne more delovati? V tem vodniku je prikazano, kako lahko hitro odpravite pogoste napake VLOOKUP in premagate njegove glavne omejitve.
V nekaj prejšnjih člankih smo raziskali različne vidike Excelove funkcije VLOOKUP. Če ste nas pozorno spremljali, bi morali biti zdaj že strokovnjak na tem področju :)
Vendar pa mnogi strokovnjaki za Excel ne brez razloga menijo, da je VLOOKUP ena najbolj zapletenih funkcij Excel-a. Ima veliko omejitev, ki so vir različnih težav in napak.
V tem članku boste našli preproste razlage glavnih vzrokov za napake VLOOKUP, kot so #N/A, #NAME in #VALUE, ter njihove rešitve in popravke. Začeli bomo z najbolj očitnimi razlogi, zakaj VLOOKUP ne deluje, zato je morda dobro, da si po vrstnem redu ogledate spodnje korake za odpravljanje težav.
Odpravljanje napake #N/A v VLOOKUP
V formulah VLOOKUP se sporočilo o napaki #N/A (kar pomeni "ni na voljo") prikaže, kadar Excel ne more najti vrednosti za iskanje. To se lahko zgodi iz več razlogov.
1. Vrednost iskanja je napačno zapisana
Vedno je dobro najprej preveriti najbolj očitno stvar : ) Napačni odtisi se pogosto pojavijo pri delu z res velikimi podatkovnimi nizi, sestavljenimi iz več tisoč vrstic, ali kadar je vrednost iskanja vnesena neposredno v formulo.
2. #N/A v približnem ujemanju VLOOKUP
Če vaša formula poišče najbližje ujemanje, ( range_lookup nastavljen na TRUE ali izpuščen), se lahko napaka #N/A pojavi v dveh primerih:
- Vrednost iskanja je manjša od najmanjše vrednosti v polju iskanja.
- Stolpec iskanja ni razvrščen v naraščajočem vrstnem redu.
3. #N/A v natančnem ujemanju VLOOKUP
Če iščete natančno ujemanje ( range_lookup če je argument nastavljen na FALSE), pride do napake #N/A, če ni najdena vrednost, ki je natančno enaka vrednosti iskanja. Za več informacij glejte VLOOKUP natančno ujemanje proti približnemu ujemanju.
4. Stolpec za iskanje ni skrajni levi stolpec tabelarnega polja
Ena od najpomembnejših omejitev Excelovega VLOOKUP-a je, da ne more pogledati v levo. Zato mora biti stolpec za iskanje vedno skrajni levi stolpec V praksi na to pogosto pozabimo in na koncu dobimo napake #N/A.
Rešitev : Če podatkov ni mogoče prestrukturirati tako, da bi bil stolpec za iskanje najbolj levi stolpec, lahko kot alternativo funkciji VLOOKUP skupaj uporabite funkciji INDEX in MATCH. Tukaj je primer formule: INDEX MATCH formula za iskanje vrednosti na levi.
5. Številke so oblikovane kot besedilo
Drug pogost vir napak #N/A v formulah VLOOKUP so številke, oblikovane kot besedilo, bodisi v glavni ali preglednici za iskanje.
To se običajno zgodi, ko uvozite podatke iz zunanje zbirke podatkov ali če ste pred številko vnesli apostrof, da bi prikazali začetne ničle.
Tu so najbolj očitni kazalniki številk, oblikovanih kot besedilo:
Rešitev: Izberite vse problematične številke, kliknite ikono napake in izberite Pretvori v število iz kontekstnega menija. Za več informacij glejte Kako pretvoriti besedilo v številko v Excelu.
6. Vodilni ali končni presledki
To je najmanj očiten vzrok za napako VLOOKUP #N/A, saj človeško oko težko opazi te dodatne presledke, še posebej pri delu z velikimi podatkovnimi zbirkami, kjer je večina vnosov pod pomikom.
Rešitev 1: Dodatni presledki v vrednosti iskanja
Če želite zagotoviti pravilno delovanje formule VLOOKUP, zapakirajte vrednost iskanja s funkcijo TRIM:
=VLOOKUP(TRIM(E1), A2:C10, 2, FALSE)
Rešitev 2: Dodatni presledki v stolpcu za iskanje
Če se v stolpcu iskanja pojavijo dodatni presledki, ni preprostega načina, da bi se izognili napakam #N/A v VLOOKUP-u. Namesto tega lahko uporabite kombinacijo funkcij INDEX, MATCH in TRIM kot formulo polja:
=INDEX(B2:B10, MATCH(TRUE, TRIM(A$2:A$10)=TRIM(E1), 0))
Ker gre za formulo za polja, ne pozabite pritisniti kombinacije tipk Ctrl + Shift + Enter, da jo pravilno dokončate (v Excelu 365 in Excelu 2021, kjer so polja domača, ta formula deluje tudi kot običajna formula).
Nasvet: Hitra alternativa je uporaba orodja Trim Spaces, ki v nekaj sekundah odstrani odvečne presledke v preglednicah za iskanje in glavnih preglednicah, tako da bodo vaše formule VLOOKUP brez napak.
#VALUE! napaka v formulah VLOOKUP
Na splošno Microsoft Excel prikaže napako #VALUE!, če je vrednost, uporabljena v formuli, napačne podatkovne vrste. V zvezi z VLOOKUP obstajata dva pogosta vira napake VALUE!.
1. Vrednost iskanja presega 255 znakov
Upoštevajte, da VLOOKUP ne more poiskati vrednosti, ki vsebujejo več kot 255 znakov. Če vaše vrednosti za iskanje presežejo to omejitev, se prikaže napaka #VALUE!
Rešitev : Namesto tega uporabite formulo INDEX MATCH. V našem primeru ta formula deluje odlično:
=INDEX(B2:B7, MATCH(TRUE, INDEX(A2:A7= E1, 0), 0))
2. Celotna pot do delovnega zvezka za iskanje ni navedena
Če podatke povlečete iz drugega delovnega zvezka, morate navesti celotno pot do njega. Natančneje, ime delovnega zvezka, vključno s končnico, morate zapreti v [oglate oklepaje] in navesti ime lista, ki mu sledi vzklikalnik. Če ime delovnega zvezka ali lista ali oboje vsebuje presledke ali nealfabetske znake, mora biti pot zaprta v enojne narekovaje.
Tukaj je struktura table_array argument Vlookup iz drugega delovnega zvezka:
'[ime delovnega zvezka]ime lista'!obseg
Resnična formula bi bila lahko podobna tej:
=VLOOKUP($A$2,'[New Prices.xls]Sheet1'!$B:$D, 3, FALSE)
Zgornja formula bo poiskala vrednost A2 v stolpcu B lista 1 v Nove cene delovnega zvezka in vrnite ustrezno vrednost iz stolpca D.
Če kateri koli element poti manjka, formula VLOOKUP ne bo delovala in bo vrnila napako #VALUE (razen če je delovni zvezek iskanja trenutno odprt).
Za več informacij glejte:
- Kako se sklicujete na drug list ali delovni zvezek v Excelu
- Kako narediti Vlookup iz drugega delovnega zvezka
3. Argument col_index_num je manjši od 1
Težko si predstavljamo situacijo, ko bi nekdo namerno vnesel število, manjše od 1, da bi določil stolpec, iz katerega naj se vrnejo vrednosti. Vendar se to lahko zgodi, če ta argument vrne kakšna druga funkcija, ki je vgrajena v formulo VLOOKUP.
Če torej col_index_num kot 1, bo vaša formula vrnila tudi napako #VALUE!.
Če col_index_num je večje od števila stolpcev v tabeli, VLOOKUP prikaže napako #REF!.
Reševanje napake VLOOKUP #NAME
To je najlažji primer - napaka #NAME? se pojavi, če ste po pomoti napačno zapisali ime funkcije.
Rešitev je očitna - preverite pravopis :)
Glavni vzroki za napake v Excelovem VLOOKUP
Poleg precej zapletene sintakse ima VLOOKUP verjetno več omejitev kot katera koli druga funkcija programa Excel. Zaradi teh omejitev lahko na videz pravilna formula pogosto prinese drugačne rezultate, kot ste jih pričakovali. V nadaljevanju najdete rešitve za nekaj tipičnih primerov, ko VLOOKUP odpove.
VLOOKUP ne upošteva velikih in malih črk
Funkcija VLOOKUP ne razlikuje med velikostjo črk in obravnava male in velike črke kot enake.
Rešitev : Uporabite VLOOKUP, XLOOKUP ali INDEX MATCH v kombinaciji s funkcijo EXACT, ki se lahko ujema z velikostjo črk besedila. Podrobna pojasnila in primere formul najdete v tem učbeniku: 5 načinov za izvedbo Vlookup, ki upošteva velikost črk v Excelu.
V tabelo je bil vstavljen ali odstranjen nov stolpec.
Žal formule VLOOKUP prenehajo delovati vsakič, ko se iz preglednice za iskanje izbriše ali vanjo doda nov stolpec. To se zgodi, ker sintaksa funkcije VLOOKUP zahteva določitev številke indeksa vrnjenega stolpca. Ko se v preglednico doda/izbriše nov stolpec, se številka indeksa seveda spremeni.
Rešitev : Formula INDEX MATCH spet priskoči na pomoč : ) Z INDEX MATCH ločeno določite območja iskanja in vračanja, zato lahko izbrišete ali vstavite poljubno število stolpcev, ne da bi vas skrbelo posodabljanje vsake povezane formule.
Sklici na celice se spremenijo, ko kopirate formulo v druge celice
V naslovu je izčrpno pojasnjena težava, kajne?
Rešitev : Vedno uporabljajte absolutne reference (z znakom $) za table_array $A$2:$C$100 ali $A:$C. Med različnimi vrstami referenc lahko hitro preklapljate s pritiskom tipke F4.
VLOOKUP vrne prvo najdeno vrednost
Kot že veste, Excelov VLOOKUP vrne prvo najdeno vrednost. Lahko pa ga prisilite, da prikaže 2., 3., 4. ali katero koli drugo najdeno vrednost. Obstaja tudi način za pridobitev zadnjega ujemanja ali vseh najdenih ujemanj.
Rešitve : Primeri formul so na voljo tukaj:
- VLOOKUP in vrnite N-ti pojav
- VLOOKUP več vrednosti
- Formula XLOOKUP za pridobitev zadnjega ujemanja
Zakaj moj VLOOKUP deluje za nekatere celice, za druge pa ne?
Kadar formula VLOOKUP v nekaterih celicah vrne pravilne podatke, v drugih pa napake #N/A, se to lahko zgodi iz več razlogov.
1. Tabelsko polje ni zaklenjeno
Recimo, da imate to formulo v vrstici 2 (na primer v E2), ki lepo deluje:
=VLOOKUP(D2, A2:B10, 2, FALSE)
Ko formulo kopirate v vrstico 3, se spremeni v:
=VLOOKUP(D3, A3:B11, 2, FALSE)
Ker se relativna referenca uporablja za table_array , se spremeni glede na relativni položaj vrstice, v katero je kopirana formula, v našem primeru iz A2:B10 v A3:B11. Torej, če je ujemanje v vrstici 2, ne bo najdeno!
Rešitev : Kadar uporabljate formulo VLOOKUP za več kot eno celico, vedno zaklene polje tabel sklic z znakom $, kot je $A$2:$B$10.
2. Besedilne vrednosti ali podatkovne vrste se ne ujemajo
Drug pogost razlog za neuspeh VLOOKUP je razlika med vrednostjo iskanja in podobno vrednostjo v stolpcu iskanja. V nekaterih primerih je razlika tako subtilna, da jo je težko vizualno opaziti.
Rešitev : Kadar VLOOKUP vrne napako #N/A, medtem ko je vrednost iskanja jasno vidna v stolpcu iskanja in se očitno obe pišeta popolnoma enako, morate najprej ugotoviti glavni vzrok težave - formulo ali izvorne podatke.
Če želite ugotoviti, ali sta vrednosti enaki ali različni, opravite neposredno primerjavo na ta način:
=E1=A4
Pri čemer je E1 vaša vrednost iskanja, A4 pa je enaka vrednost v stolpcu iskanja.
Če formula vrne vrednost FALSE, to pomeni, da se vrednosti na neki način razlikujeta, čeprav sta si na videz popolnoma enaki.
V primeru številčne vrednosti , najverjetnejši razlog so številke, oblikovane kot besedilo.
V primeru vrednosti besedila , je težava najverjetneje v prevelikem številu presledkov. Če želite to preveriti, ugotovite skupno dolžino obeh nizov s funkcijo LEN:
=LEN(E1)
=LEN(A4)
Če so dobljene številke drugačne (kot na spodnji sliki zaslona), ste odkrili krivca - dodatne presledke:
Težavo lahko rešite tako, da odstranite dodatne presledke ali pa uporabite to formulo INDEX MATCH TRIM.
Zakaj moj VLOOKUP pridobi napačne podatke?
Razlogov za to, da vaš VLOOKUP vrne napačno vrednost, je lahko še več:
- Nepravilen način iskanja . Če želite natančno ujemanje, nastavite range_lookup Privzeto je TRUE, če ta argument izpustite, bo VLOOKUP domneval, da iščete približno ujemanje, in poiskal najbližjo vrednost, ki je manjša od vrednosti iskanja.
- Stolpec iskanja ni razvrščen . Za približno ujemanje z VLOOKUP ( range_lookup nastavljena na TRUE), mora biti prvi stolpec v polju tabele razvrščen po naraščajočem vrstnem redu, od najmanjšega do največjega.
- Podvojitve v stolpcu iskanja Če stolpec iskanja vsebuje dve ali več podvojenih vrednosti, VLOOKUP vrne prvo najdeno ujemanje, ki morda ni tisto, ki ga pričakujete.
- Nepravilen stolpec za vračanje . Dvakrat preverite številko indeksa v tretjem argumentu :)
VLOOKUP ne deluje med dvema listoma
Najprej je treba opozoriti, da lahko zgoraj obravnavani pogosti razlogi za napake #N/A, #VALUE in #REF povzročijo enake težave pri iskanju iz drugega lista. Če temu ni tako, preverite naslednje točke:
- Prepričajte se, da je zunanji sklic na drug list ali drug delovni zvezek pravilen.
- Pri izvajanju Vlookup iz drugega delovnega zvezka, ki je zaprta preverite, ali vaša formula vsebuje celotno pot do zaprtega delovnega zvezka.
- Če VLOOKUP ne more izbrati tabelarnega polja v drugem delovnem listu (tj. ko označite območje v preglednici za iskanje, se v preglednici ne prikaže nič. table_array v formuli ali v ustreznem polju čarovnika za formule), potem sta lista najverjetneje odprta v različnih instancih programa Excel in ne moreta komunicirati med seboj. Za več informacij glejte Kako ugotoviti, katere datoteke Excel so v kateri instanci. Če želite to odpraviti, preprosto zaprite vsa okna programa Excel in nato ponovno odprite lista/delovni knjigi v isti instanci (privzeto ravnanje).
Kako Vlookup brez napak v Excelu
Če ne želite ustrahovati uporabnikov s standardnimi zapisi napak v Excelu, lahko namesto tega prikažete lastno uporabniku prijazno besedilo ali vrnete prazno celico, če ne najdete ničesar. To lahko storite z uporabo VLOOKUP s funkcijo IFERROR ali IFNA.
Ujemanje vseh napak
V Excelu 2007 in novejših programih lahko s funkcijo IFERROR preverite napake v formuli VLOOKUP in vrnete lastno besedilo (ali prazen niz), če kakršna koli napaka je zaznan.
Na primer:
=IFERROR(VLOOKUP(E1, A2:B10, 2, FALSE), "Ups, nekaj je šlo narobe")
V Excelu 2003 in prejšnjih različicah lahko za isti namen uporabite formulo IF ISERROR:
=IF(ISERROR(VLOOKUP(E1, A2:B10, 2, FALSE)), "Ups, nekaj je šlo narobe", VLOOKUP(E1, A2:B10, 2, FALSE))
Za več podrobnosti glejte Uporaba IFERROR z VLOOKUP v Excelu.
Obravnava napak #N/A
Če želite ujeti samo napake #N/A in zanemariti vse druge vrste napak, uporabite funkcijo IFNA (v Excelu 2013 in novejših različicah) ali formulo IF ISNA (v vseh različicah).
Na primer:
=IFNA(VLOOKUP(E1, A2:B10, 2, FALSE), "Ups, ni najdeno nobeno ujemanje. Poskusite znova!")
=IF(ISNA(VLOOKUP(E1, A2:B10, 2, FALSE)), "Ups, ni bilo najdeno nobeno ujemanje. Poskusite znova!", VLOOKUP(E1, A2:B10, 2, FALSE))
Upajmo, da vam bo to vodilo pomagalo odpraviti napake VLOOKUP in da bodo vaše formule delovale tako, kot želite.