INHOUDSOPGAWE
Trek jou VLOOKUP verkeerde data of kan jy dit glad nie kry om te werk nie? Hierdie tutoriaal wys hoe jy vinnig algemene VLOOKUP-foute kan regmaak en die hoofbeperkings daarvan kan oorkom.
In 'n paar vroeëre artikels het ons verskillende aspekte van die Excel VLOOKUP-funksie ondersoek. As jy ons noukeurig gevolg het, behoort jy nou 'n kenner op hierdie gebied te wees :)
Dit is egter nie sonder rede dat baie Excel-spesialiste VLOOKUP as een van die mees ingewikkelde Excel-funksies beskou nie. Dit het 'n klomp beperkings, wat die bron van verskeie probleme en foute is.
In hierdie artikel sal jy eenvoudige verduidelikings vind van die hoofoorsake van VLOOKUP-foute soos bv. #Nvt, #NAAM en #WAARDE, sowel as hul oplossings en regstellings. Ons sal begin met die mees voor die hand liggende redes waarom VLOOKUP nie werk nie, so dit is dalk 'n goeie idee om die onderstaande foutsporingstappe in volgorde na te gaan.
Repareer #N/A-fout in VLOOKUP
In VLOOKUP-formules word die #N/A-foutboodskap (wat beteken "nie beskikbaar nie") vertoon wanneer Excel nie 'n opsoekwaarde kan vind nie. Daar kan verskeie redes wees waarom dit kan gebeur.
1. Die opsoekwaarde is verkeerd gespel
Dit is altyd 'n goeie idee om eers die mees ooglopende ding na te gaan : ) Drukfoute kom gereeld voor wanneer jy met baie groot datastelle werk wat uit duisende rye bestaan, of wanneer 'n opsoekwaarde getik word direk in die formule.
2.VLOOKUP kan nie 'n tabelskikking in 'n ander werkblad kies nie (d.w.s. wanneer jy 'n reeks in die opsoekblad uitlig, verskyn niks in die tabelskikking -argument in die formule of in die ooreenstemmende blokkie van die formule towenaar), dan is die twee velle waarskynlik oop in aparte gevalle van Excel en kan nie met mekaar kommunikeer nie. Vir meer inligting, sien asseblief Hoe om te bepaal watter Excel-lêers in watter geval is. Om dit reg te stel, maak eenvoudig alle Excel-vensters toe en maak dan die blaaie/werkboeke in dieselfde geval weer oop (die verstekgedrag). Hoe om te Vlookup sonder foute in Excel
As jy wil nie jou gebruikers intimideer met standaard Excel-foutnotasies nie, jy kan eerder jou eie gebruikersvriendelike teks vertoon of 'n leë sel terugstuur as niks gevind word nie. Dit kan gedoen word deur VLOOKUP met IFERROR of IFNA-funksie te gebruik.
Vang alle foute
In Excel 2007 en later kan jy die IFERROR-funksie gebruik om 'n VLOOKUP-formule vir foute na te gaan en jou eie teks (of 'n leë string) as enige fout bespeur word.
Byvoorbeeld:
=IFERROR(VLOOKUP(E1, A2:B10, 2, FALSE), "Oops, something went wrong")
In Excel 2003 en vroeër kan jy gebruik die IF ISERROR-formule vir dieselfde doel:
=IF(ISERROR(VLOOKUP(E1, A2:B10, 2, FALSE)), "Oops, something went wrong", VLOOKUP(E1, A2:B10, 2, FALSE))
Vir meer besonderhede, sien asseblief Gebruik IFERROR met VLOOKUP in Excel.
Hanteer #N/A-foute
Om slegs #N/A-foute vas te vang wat alle ander fouttipes ignoreer, gebruik die IFNA-funksie (in Excel 2013 enhoër) of IF ISNA-formule (in alle weergawes).
Byvoorbeeld:
=IFNA(VLOOKUP(E1, A2:B10, 2, FALSE), "Oops, no match is found. Please try again!")
=IF(ISNA(VLOOKUP(E1, A2:B10, 2, FALSE)), "Oops, no match is found. Please try again!", VLOOKUP(E1, A2:B10, 2, FALSE))
Dis al vir vandag. Hopelik sal hierdie tutoriaal jou help om van VLOOKUP-foute ontslae te raak en jou formules te laat werk soos jy wil.
Hoe om VLOOKUP in Excel - video-tutoriaal
#N/A in benaderde passing VLOOKUPAs jou formule die naaste passing opsoek, ( range_lookup -argument op WAAR gestel of weggelaat), kan die #N/A-fout in twee gevalle verskyn :
- Die opsoekwaarde is kleiner as die kleinste waarde in die opsoekskikking.
- Die opsoekkolom is nie in stygende volgorde gesorteer nie.
3 . #Nvt in presiese passing VLOOKUP
As jy soek na presiese passing ( reeksopsoek -argument op ONWAAR gestel), vind die #Nvt-fout plaas wanneer 'n waarde presies gelyk is aan die soektog waarde word nie gevind nie. Vir meer inligting, sien VLOOKUP presiese passing vs. benaderde passing.
4. Die opsoekkolom is nie die linkerkantste kolom van die tabelskikking nie
Een van die belangrikste beperkings van Excel VLOOKUP is dat dit nie na links kan kyk nie. Gevolglik moet 'n opsoekkolom altyd die linkerste kolom in die tabelskikking wees. In die praktyk vergeet ons dikwels hiervan en eindig met #N/A-foute.
Oplossing : As dit nie moontlik is om jou data te herstruktureer nie. sodat die opsoekkolom die linkerkantste kolom is, kan jy die INDEX- en MATCH-funksies saam gebruik as 'n alternatief vir VLOOKUP. Hier is 'n formulevoorbeeld: INDEX MATCH formule om waardes na links op te soek.
5. Getalle word as teks geformateer
Nog 'n algemene bron #N/A-foute in VLOOKUP-formules is getalle wat as teks geformateer is, hetsy in die hoof- of opsoektabel.
Dit is gewoonlikvind plaas wanneer jy data vanaf een of ander eksterne databasis invoer of as jy 'n apostrof voor 'n nommer getik het om voorste nulle te wys.
Hier is die mees ooglopende aanwysers van getalle wat as teks geformateer is:
Oplossing: Kies al die problematiese nommers, klik op die foutikoon en kies Skakel na nommer uit die kontekskieslys. Vir meer inligting, sien asseblief Hoe om teks na nommer in Excel om te skakel.
6. Voorste of agterste spasies
Dit is die minste ooglopende oorsaak van die VLOOKUP #N/A-fout omdat 'n menslike oog skaars daardie ekstra spasies kan raaksien, veral wanneer daar met groot datastelle gewerk word waar die meeste van die inskrywings onder die boekrol is .
Oplossing 1: Ekstra spasies in die opsoekwaarde
Om die korrekte werk van jou VLOOKUP-formule te verseker, draai die opsoekwaarde in die TRIM-funksie:
=VLOOKUP(TRIM(E1), A2:C10, 2, FALSE)
Oplossing 2: Ekstra spasies in die opsoekkolom
As ekstra spasies in die opsoekkolom voorkom, is daar is geen maklike manier om #N/A-foute in VLOOKUP te vermy nie. In plaas daarvan kan jy 'n kombinasie van INDEX-, MATCH- en TRIM-funksies as 'n skikkingsformule gebruik:
=INDEX(B2:B10, MATCH(TRUE, TRIM(A$2:A$10)=TRIM(E1), 0))
Aangesien dit 'n skikkingsformule is, moenie vergeet om Ctrl + Shift + Enter te druk nie om dit behoorlik te voltooi (in Excel 365 en Excel 2021 waar skikkings inheems is, werk dit ook as 'n gewone formule).
Wenk. 'n Vinnige alternatief is om die Trim Spaces-nutsding te laat loop wat sal uitskakeloortollige spasies in beide die opsoek- en hooftabelle binne sekondes, wat jou VLOOKUP-formules foutloos maak.
#WAARDE! fout in VLOOKUP-formules
Oor die algemeen vertoon Microsoft Excel die #VALUE! fout as 'n waarde wat in die formule gebruik word van 'n verkeerde datatipe is. Met betrekking tot VLOOKUP, is daar twee algemene bronne van die VALUE! fout.
1. Opsoekwaarde oorskry 255 karakters
Wees asseblief bewus daarvan dat VLOOKUP nie waardes kan opsoek wat meer as 255 karakters bevat nie. As jou opsoekwaardes hierdie limiet oorskry, 'n #VALUE! fout sal vertoon word:
Oplossing : Gebruik eerder 'n INDEX MATCH-formule. In ons geval werk hierdie formule perfek:
=INDEX(B2:B7, MATCH(TRUE, INDEX(A2:A7= E1, 0), 0))
2. Volledige pad na die opsoekwerkboek word nie verskaf nie
As jy data uit 'n ander werkboek trek, moet jy die volle pad daarheen insluit. Meer presies, jy moet die werkboek se naam insluitend die uitbreiding tussen [vierkantige hakies] insluit en die blad se naam spesifiseer gevolg deur die uitroepteken. As die werkboeknaam of bladnaam, of albei, spasies of enige nie-alfabetiese karakters bevat, moet die pad in enkele aanhalingstekens ingesluit word.
Hier is die struktuur van die tabelskikking -argument om Vlookup uit 'n ander werkboek:
'[workbook name]sheet name'!range
'n Werklike formule kan soortgelyk lyk soos hierdie:
=VLOOKUP($A$2,'[New Prices.xls]Sheet1'!$B:$D, 3, FALSE)
Bogenoemde formule sal na die waarde van A2 soek in kolom B van Blad1 in die NuwePryse -werkboek, en gee 'n ooreenstemmende waarde uit kolom D terug.
As enige element van die pad ontbreek, sal jou VLOOKUP-formule nie werk nie en die #VALUE-fout terugstuur (tensy die opsoekwerkboek tans is oop).
Vir meer inligting, sien asseblief:
- Hoe om na 'n ander blad of werkboek in Excel te verwys
- Hoe om Vlookup uit 'n ander werkboek te doen
3. Die col_index_num-argument is minder as 1
Dit is moeilik om 'n situasie voor te stel wanneer iemand doelbewus 'n getal minder as 1 invoer om die kolom te spesifiseer om waardes van terug te gee. Maar dit kan gebeur as hierdie argument teruggestuur word deur 'n ander funksie wat in jou VLOOKUP-formule geneste is.
Dus, as die kol_indeks_getal -argument as 1 is, sal jou formule die #VALUE! fout ook.
As kol_indeks_getal groter is as die aantal kolomme in die tabelskikking, produseer VLOOKUP die #REF! fout.
Los van VLOOKUP #NAAM-fout op
Dit is die maklikste geval - die #NAAM? fout verskyn as jy die funksie se naam per ongeluk verkeerd gespel het.
Die oplossing is voor die hand liggend - kontroleer die spelling :)
Die hoofoorsake van foute in Excel OPSOEK
Afgesien van met 'n redelik ingewikkelde sintaksis, VLOOKUP het waarskynlik meer beperkings as enige ander Excel-funksie. As gevolg van hierdie beperkings, kan 'n oënskynlik korrekte formule dikwels resultate lewer wat verskil van wat jy verwag het. Hieronder sal jy vindoplossings vir 'n paar tipiese scenario's wanneer VLOOKUP misluk.
VLOOKUP is hoofletter-onsensitief
Die VLOOKUP-funksie onderskei nie die letterkas nie en maak kleinletters en hoofletters identies.
Oplossing : Gebruik VLOOKUP, XLOOKUP of INDEX MATCH in kombinasie met die EXACT funksie wat tekskas kan pas. Jy kan die gedetailleerde verduidelikings en formulevoorbeelde in hierdie tutoriaal vind: 5 maniere om 'n hooflettergevoelige Vlookup in Excel te doen.
'n Nuwe kolom is ingevoeg of uit die tabel verwyder
Ongelukkig, VLOOKUP formules hou op werk elke keer wanneer 'n nuwe kolom uit of bygevoeg word aan die opsoektabel. Dit gebeur omdat die sintaksis van die VLOOKUP-funksie vereis dat die indeksnommer van die terugkeerkolom gedefinieer word. Wanneer 'n nuwe kolom by die tabelskikking gevoeg word/verwyder word, verander die indeksgetal natuurlik.
Oplossing : Die INDEX MATCH-formule kom weer tot die redding : ) Met INDEX MATCH kan jy spesifiseer die opsoek- en terugkeerreekse afsonderlik, sodat jy vry is om soveel kolomme uit te vee of in te voeg as wat jy wil sonder om bekommerd te wees oor die opdatering van elke geassosieerde formule.
Selverwysings verander wanneer die formule na ander selle gekopieer word
Die opskrif gee 'n volledige verduideliking van die probleem, reg?
Oplossing : Gebruik altyd absolute verwysings (met die $-teken) vir die tabelskikking -argument, bv. $A$2:$C$100 of$A:$C. Jy kan vinnig wissel tussen verskillende verwysingstipes deur die F4-sleutel te druk.
VLOOKUP gee die eerste gevind waarde terug
Soos jy reeds weet, gee Excel VLOOKUP die eerste waarde wat dit vind terug. Jy kan dit egter dwing om die 2de, 3de, 4de of enige ander gebeurtenis wat jy wil saam te bring. Daar is ook 'n manier om die laaste passing of alle gevind passings te kry.
Oplossings : Formulevoorbeelde is hier beskikbaar:
- VLOOKUP en gee Nde voorkoms terug
- VLOOKUP veelvuldige waardes
- XLOOKUP formule om die laaste passing te kry
Hoekom werk my VLOOKUP vir sommige selle maar nie ander nie?
Wanneer jou VLOOKUP formule gee die korrekte data terug I sommige selle en #N/A foute in ander, kan daar 'n paar moontlike redes wees waarom dit gebeur.
1. Die tabelskikking is nie gesluit nie
Gestel jy het hierdie formule in ry 2 (sê in E2), wat goed werk:
=VLOOKUP(D2, A2:B10, 2, FALSE)
Wanneer dit na ry gekopieer word 3, verander die formule na:
=VLOOKUP(D3, A3:B11, 2, FALSE)
Omdat 'n relatiewe verwysing vir tabel_skikking gebruik word, verander dit op grond van die relatiewe posisie van die ry waar die formule gekopieer is , in ons geval van A2:B10 na A3:B11. Dus, as die pasmaat in ry 2 is, sal dit nie gevind word nie!
Oplossing : Wanneer 'n VLOOKUP-formule vir meer as een sel gebruik word, sluit altyd die tabelskikking verwysing met die $ teken soos $A$2:$B$10.
2. Tekswaardes of datatipes stem nie ooreen nie
'n Anderalgemene rede vir VLOOKUP-mislukking is die verskil tussen jou opsoekwaarde en 'n soortgelyke waarde in die opsoekkolom. In sommige gevalle is die verskil so subtiel dat dit moeilik is om visueel raak te sien.
Oplossing : Wanneer VLOOKUP 'n #N/A-fout terugstuur terwyl jy die opsoekwaarde duidelik kan sien in die soekkolom, en blykbaar is albei presies dieselfde gespel, is die eerste ding wat jy moet doen om die hoofoorsaak van die probleem te bepaal - die formule of die brondata.
Om te sien of die twee waardes die dieselfde of anders, maak 'n direkte vergelyking op hierdie manier:
=E1=A4
Waar E1 jou opsoekwaarde is en A4 'n identiese waarde in die opsoekkolom is.
As die formule gee ONWAAR terug, dit beteken dat die waardes op een of ander manier verskil, hoewel hulle absoluut eenders lyk.
In die geval van numeriese waardes is die mees moontlike rede syfers wat as teks geformateer is.
In die geval van tekswaardes is die probleem heel waarskynlik in oormaat spasies. Om dit te verifieer, vind uit die totale lengte van die twee stringe deur die LEN-funksie te gebruik:
=LEN(E1)
=LEN(A4)
As die gevolglike getalle verskil (soos in die skermkiekie hieronder ), dan het jy die skuldige uitgewys - ekstra spasies:
Om die probleem op te los, verwyder ekstra spasies of gebruik hierdie INDEX MATCH TRIM-formule as 'n oplossing.
Hoekom trek my VLOOKUP verkeerde data?
Daar kan selfs meer redes wees hoekomjou VLOOKUP gee 'n verkeerde waarde:
- Verkeerde soekmodus . As jy 'n presiese passing wil hê, maak seker dat jy die reekssoek -argument op ONWAAR stel. Die verstek is WAAR, so as jy hierdie argument weglaat, sal VLOOKUP aanvaar jy soek 'n benaderde passing en soek vir die naaste waarde wat kleiner is as die opsoekwaarde.
- Die opsoekkolom is nie gesorteer . Vir benaderde passing VLOOKUP ( reeks_opsoek gestel op WAAR) om korrek te werk, moet die eerste kolom in die tabelskikking in stygende volgorde gesorteer word, van die kleinste na die grootste.
- Duplikate in die opsoekkolom . As die opsoekkolom twee of meer duplikaatwaardes bevat, sal VLOOKUP die eerste gevind passing terugstuur, wat dalk nie die een is wat jy verwag nie.
- Verkeerde terugkeerkolom . Kontroleer die indeksnommer in die 3de argument :)
VLOOKUP werk nie tussen twee blaaie nie
Eerstens moet daarop gelet word dat die algemene redes van #N/A, #VALUE- en #REF-foute wat hierbo bespreek is, kan dieselfde probleme veroorsaak wanneer jy van 'n ander blad naslaan. As dit nie die geval is nie, kyk na die volgende punte:
- Maak seker die eksterne verwysing na 'n ander blad of 'n ander werkboek is korrek.
- Wanneer 'n Vlookup vanaf 'n ander werkboek gedoen word wat is gesluit op die oomblik, verifieer dat jou formule die volle pad na die geslote werkboek bevat.
- Indien