Satura rādītājs
Vai jūsu VLOOKUP iegūst nepareizus datus vai vispār nespēj darboties? Šajā pamācībā parādīts, kā ātri novērst biežāk sastopamās VLOOKUP kļūdas un pārvarēt galvenos ierobežojumus.
Dažos iepriekšējos rakstos mēs aplūkojām dažādus Excel VLOOKUP funkcijas aspektus. Ja esat mums rūpīgi sekojuši līdzi, tad tagad jums jau vajadzētu būt šīs jomas ekspertam :)
Tomēr ne velti daudzi Excel speciālisti uzskata, ka VLOOKUP ir viena no sarežģītākajām Excel funkcijām. Tai ir daudz ierobežojumu, kas ir dažādu problēmu un kļūdu avots.
Šajā rakstā atradīsiet vienkāršus skaidrojumus par galvenajiem VLOOKUP kļūdu cēloņiem, piemēram, #N/A, #NAME un #VALUE, kā arī to risinājumiem un novēršanas iespējām. Sāksim ar acīmredzamākajiem iemesliem, kāpēc VLOOKUP nedarbojas, tāpēc, iespējams, būtu labi izlasīt turpmāk minētos problēmu novēršanas soļus.
#N/A kļūdas labošana VLOOKUP sistēmā
VLOOKUP formulās #N/A kļūdas paziņojums (kas nozīmē "nav pieejams") tiek parādīts, ja Excel nevar atrast meklēšanas vērtību. Tam var būt vairāki iemesli.
1. Pārlūkošanas vērtība ir nepareizi uzrakstīta
Vienmēr ir labi vispirms pārbaudīt acīmredzamāko : ) Kļūdas bieži rodas, ja strādājat ar patiešām lielām datu kopām, kas sastāv no tūkstošiem rindu, vai ja meklēšanas vērtība ir ievadīta tieši formulā.
2. #N/A aptuvenā sakritībā VLOOKUP
Ja jūsu formulā tiek meklēts vistuvākais variants, ( range_lookup arguments ir TRUE vai izlaists), kļūda #N/A var parādīties divos gadījumos:
- Pārlūkošanas vērtība ir mazāka par mazāko vērtību pārlūkošanas masīvā.
- Pārlūkošanas sleja nav sakārtota augošā secībā.
3. #N/A precīzas atbilstības VLOOKUP sistēmā
Ja meklējat precīzu atbilstību ( range_lookup ja argumentam FALSE ir iestatīts FALSE), #N/A kļūda rodas tad, ja nav atrasta vērtība, kas precīzi atbilst meklēšanas vērtībai. Lai iegūtu vairāk informācijas, skatiet VLOOKUP precīza atbilstība pret aptuvenu atbilstību.
4. Pārlūkošanas sleja nav tabulas masīva kreisākā sleja.
Viens no būtiskākajiem Excel VLOOKUP ierobežojumiem ir tas, ka tas nevar skatīties pa kreisi. Līdz ar to meklēšanas slejā vienmēr jābūt. galējā kreisā sleja Praksē mēs bieži aizmirstam par to un galu galā saņemam #N/A kļūdas.
Risinājums : Ja nav iespējams pārstrukturēt datus tā, lai meklēšanas aile būtu kreisākā aile, varat izmantot INDEX un MATCH funkcijas kopā kā VLOOKUP alternatīvu. Šeit ir formulas piemērs: INDEX MATCH formula, lai meklētu vērtības pa kreisi.
5. Skaitļi tiek formatēti kā teksts
Vēl viens bieži sastopams #N/A kļūdu avots VLOOKUP formulās ir skaitļi, kas formatēti kā teksts vai nu galvenajā, vai meklēšanas tabulā.
Tas parasti notiek, importējot datus no kādas ārējas datubāzes vai ja pirms skaitļa esat ievadījis apostrofu, lai parādītu sākuma nulles.
Tālāk ir norādīti acīmredzamākie rādītāji, kas raksturo skaitļus, kuri formatēti kā teksts:
Risinājums: Atlasiet visus problemātiskos numurus, noklikšķiniet uz kļūdas ikonas un izvēlieties Konvertēt uz Skaitlis Lai iegūtu vairāk informācijas, skatiet sadaļu Kā konvertēt tekstu uz skaitli programmā Excel.
6. Vadošās vai aizmugurējās atstarpes
Tas ir vismazāk acīmredzamais VLOOKUP #N/A kļūdas cēlonis, jo cilvēka acs diez vai var pamanīt šīs papildu atstarpes, jo īpaši strādājot ar lielām datu kopām, kurās lielākā daļa ierakstu ir zem ritināšanas.
Risinājums Nr. 1: Papildu atstarpes meklēšanas vērtībā
Lai nodrošinātu pareizu VLOOKUP formulas darbību, ievijiet meklēšanas vērtību TRIM funkcijā:
=VLOOKUP(TRIM(E1), A2:C10, 2, FALSE)
2. risinājums: papildu atstarpes meklēšanas slejā
Ja meklēšanas kolonnā ir papildu atstarpes, nav vienkārša veida, kā izvairīties no #N/A kļūdām VLOOKUP. Tā vietā varat izmantot INDEX, MATCH un TRIM funkciju kombināciju kā masīva formulu:
=INDEX(B2:B10, MATCH(TRUE, TRIM(A$2:A$10)=TRIM(E1), 0)))
Tā kā šī ir masīva formula, neaizmirstiet nospiest taustiņus Ctrl + Shift + Enter, lai to pareizi pabeigtu (programmā Excel 365 un Excel 2021, kurā ir pieejami masīvi, šī formula darbojas arī kā parasta formula).
Padoms. Ātra alternatīva ir izmantot rīku Trim Spaces, kas dažu sekunžu laikā novērsīs liekās atstarpes gan uzmeklēšanas, gan galvenajās tabulās, padarot VLOOKUP formulas bez kļūdām.
#VALUE! kļūda VLOOKUP formulās
Kopumā Microsoft Excel parāda kļūdu #VALUE!, ja formulā izmantotā vērtība ir nepareiza datu tipa. Attiecībā uz VLOOKUP ir divi biežākie VALUE! kļūdas avoti.
1. Meklēšanas vērtība pārsniedz 255 rakstzīmes
Lūdzu, ņemiet vērā, ka VLOOKUP nevar meklēt vērtības, kas satur vairāk nekā 255 rakstzīmes. Ja jūsu meklēšanas vērtības pārsniedz šo ierobežojumu, tiks parādīta #VALUE! kļūda:
Risinājums : Tā vietā izmantojiet INDEX MATCH formulu. Mūsu gadījumā šī formula darbojas perfekti:
=INDEX(B2:B7, MATCH(TRUE, INDEX(A2:A7= E1, 0), 0)))
2. Nav sniegts pilns ceļš uz meklēšanas darbgrāmatu.
Ja datus lejupielādējat no citas darbgrāmatas, jānorāda pilns ceļš līdz tai. Precīzāk, darbgrāmatas nosaukums, ieskaitot paplašinājumu, jāieraksta [kvadrātiekavās] un jānorāda lapas nosaukums, kam seko izsaukuma zīme. Ja darbgrāmatas vai lapas nosaukumā vai abos nosaukumos ir atstarpes vai citas nealfabētiskas rakstzīmes, ceļš jāiekļauj vienpēdiņās pēdiņās.
Šeit ir šāda struktūra table_array arguments Vlookup no citas darbgrāmatas:
'[darbgrāmatas nosaukums]lapas nosaukums'!diapazons
Reāla formula varētu būt līdzīga šai:
=VLOOKUP($A$2,'[New Prices.xls]Sheet1'!$B:$D, 3, FALSE)
Iepriekšminētā formula meklēs A2 vērtību 1. lapas B slejā. Jaunas cenas darbgrāmatu un atgriež atbilstošo vērtību no D slejas.
Ja trūkst kāda ceļa elementa, jūsu VLOOKUP formula nedarbosies un atgriezīs kļūdu #VALUE (ja vien pašlaik nav atvērta meklēšanas darbgrāmata).
Lai uzzinātu vairāk, skatiet:
- Kā atsaukties uz citu lapu vai darbgrāmatu programmā Excel
- Kā veikt Vlookup no citas darbgrāmatas
3. Arguments col_index_num ir mazāks par 1.
Ir grūti iedomāties situāciju, kad kāds apzināti ievada skaitli, kas mazāks par 1, lai norādītu kolonnu, no kuras jāatgriež vērtības. Taču tā var notikt, ja šo argumentu atdod kāda cita funkcija, kas ielikta jūsu VLOOKUP formulā.
Tātad, ja col_index_num arguments ir lielāks par 1, jūsu formula arī atgriezīs #VALUE! kļūdu.
Ja col_index_num ir lielāks par tabulas masīva kolonnu skaitu, VLOOKUP rada #REF! kļūdu.
VLOOKUP #NAME kļūdas atrisināšana
Šis ir vienkāršākais gadījums - kļūda #NAME? parādās, ja nejauši esat nepareizi uzrakstījis funkcijas nosaukumu.
Risinājums ir acīmredzams - pārbaudiet pareizrakstību :)
Galvenie Excel VLOOKUP kļūdu cēloņi
Papildus tam, ka VLOOKUP ir diezgan sarežģīta sintakse, tai ir vairāk ierobežojumu nekā jebkurai citai Excel funkcijai. Šo ierobežojumu dēļ šķietami pareiza formula bieži vien var sniegt rezultātus, kas atšķiras no gaidītajiem. Zemāk atradīsiet risinājumus dažiem tipiskiem scenārijiem, kad VLOOKUP neizdodas.
VLOOKUP ir lielo un mazo burtu un atbilžu nesaturošs.
VLOOKUP funkcija nenošķir burtu burtus un uzskata mazos un lielos burtus par vienādiem.
Risinājums : Izmantojiet VLOOKUP, XLOOKUP vai INDEX MATCH kombinācijā ar funkciju EXACT, kas var saskaņot teksta burtus. Sīki paskaidrojumi un formulu piemēri ir atrodami šajā pamācībā: 5 veidi, kā Excel programmā veikt Vlookup, ņemot vērā burtu un atbilžu gadījumus.
Tabulā ir ievietota vai noņemta jauna sleja
Diemžēl VLOOKUP formulas pārtrauc darboties ikreiz, kad meklēšanas tabulā tiek dzēsta vai pievienota jauna sleja. Tas notiek tāpēc, ka VLOOKUP funkcijas sintakse pieprasa definēt atgrieztās kolonnas indeksa numuru. Kad tabulas masīvam tiek pievienota vai no tā tiek dzēsta jauna sleja, acīmredzot šis indeksa numurs mainās.
Risinājums : INDEX MATCH formula atkal nāk palīgā : ) Izmantojot INDEX MATCH, jūs norādāt meklēšanas un atgriešanas diapazonus atsevišķi, tāpēc varat dzēst vai ievietot tik daudz kolonnu, cik vēlaties, neuztraucoties par katras saistītās formulas atjaunināšanu.
Kopējot formulu uz citām šūnām, mainās šūnu atsauces
Virsrakstā ir sniegts izsmeļošs problēmas skaidrojums, vai ne?
Risinājums : Vienmēr izmantojiet absolūtās atsauces (ar zīmi $) uz table_array Piemēram, $A$2:$C$100 vai $A:$C. Var ātri pārslēgties starp dažādiem atsauču veidiem, nospiežot taustiņu F4.
VLOOKUP atgriež pirmo atrasto vērtību
Kā jau zināt, Excel VLOOKUP atgriež pirmo atrasto vērtību. Tomēr varat piespiest to atgriezt 2., 3., 4. vai jebkuru citu vēlamo gadījumu. Ir arī veids, kā iegūt pēdējo atrasto atbilstību vai visas atrastās atbilstības.
Risinājumi : Formulas piemēri ir pieejami šeit:
- VLOOKUP un atgriež N-to notikumu
- VLOOKUP vairākas vērtības
- XLOOKUP formula, lai iegūtu pēdējo atbilstību
Kāpēc mans VLOOKUP darbojas dažās šūnās, bet ne citās?
Ja jūsu VLOOKUP formula atgriež pareizos datus I dažās šūnās un #N/A kļūdas citās, tam var būt vairāki iespējamie iemesli.
1. Tabulu masīvs nav bloķēts
Pieņemsim, ka šī formula ir 2. rindā (piemēram, E2), kas darbojas labi:
=VLOOKUP(D2, A2:B10, 2, FALSE)
Pēc kopēšanas uz 3. rindu formula mainās uz:
=VLOOKUP(D3, A3:B11, 2, FALSE)
Tā kā relatīvā atsauce tiek izmantota table_array , tas mainās atkarībā no tās rindas relatīvās pozīcijas, kurā formula ir kopēta, mūsu gadījumā no A2:B10 uz A3:B11. Tātad, ja atbilstība ir 2. rindā, tā netiks atrasta!
Risinājums : Izmantojot VLOOKUP formulu vairāk nekā vienai šūnai, vienmēr bloķēt galda masīvu atsauce ar $ zīmi, piemēram, $A$2:$B$10.
2. Teksta vērtības vai datu tipi nesakrīt.
Vēl viens biežs VLOOKUP neveiksmes iemesls ir atšķirība starp jūsu meklēšanas vērtību un līdzīgu vērtību meklēšanas kolonnā. Dažos gadījumos atšķirība ir tik smalka, ka to ir grūti pamanīt vizuāli.
Risinājums : Ja VLOOKUP atgriež #N/A kļūdu, lai gan jūs skaidri redzat meklēšanas vērtību meklēšanas slejā, un acīmredzot abas ir rakstītas tieši tāpat, vispirms ir jānosaka problēmas galvenais cēlonis - formula vai avota dati.
Lai noskaidrotu, vai abas vērtības ir vienādas vai atšķirīgas, veiciet tiešu salīdzinājumu šādā veidā:
=E1=A4
kur E1 ir jūsu meklēšanas vērtība un A4 ir identiska vērtība meklēšanas slejā.
Ja formula atgriež FALSE, tas nozīmē, ka vērtības kaut kādā veidā atšķiras, lai gan tās izskatās pilnīgi vienādas.
Gadījumā, ja skaitliskās vērtības , iespējamākais iemesls ir skaitļi, kas formatēti kā teksts.
Gadījumā, ja teksta vērtības , visticamāk, problēma ir liekās atstarpes. Lai to pārbaudītu, noskaidrojiet abu virkņu kopējo garumu, izmantojot funkciju LEN:
=LEN(E1)
=LEN(A4)
Ja iegūtie skaitļi ir atšķirīgi (kā attēlā zemāk), tad vaininieks ir atrasts - papildu atstarpes:
Lai atrisinātu šo problēmu, noņemiet papildu atstarpes vai izmantojiet šo INDEX MATCH TRIM formulu.
Kāpēc mans VLOOKUP iegūst nepareizus datus?
Var būt vēl vairāki iemesli, kāpēc jūsu VLOOKUP atgriež nepareizu vērtību:
- Nepareizs meklēšanas režīms Ja vēlaties precīzu atbilstību, noteikti iestatiet parametru range_lookup noklusējuma arguments ir FALSE. Noklusējuma iestatījums ir TRUE, tāpēc, ja šo argumentu izlaidīsiet, VLOOKUP pieņems, ka meklējat aptuvenu atbilstību, un meklēs tuvāko vērtību, kas ir mazāka par meklēšanas vērtību.
- Pārlūkošanas sleja nav sakārtota . Lai iegūtu aptuvenu atbilstību VLOOKUP ( range_lookup iestatīts uz TRUE), lai darbotos pareizi, tabulas masīva pirmajai kolonnai jābūt sakārtotai augošā secībā no mazākās uz lielāko.
- Dublēšanās meklēšanas slejā Ja meklēšanas slejā ir divas vai vairākas dublējošās vērtības, VLOOKUP atgriezīs pirmo atrasto atbilstību, kas var nebūt gaidītā vērtība.
- Nepareiza atgriešanas sleja . Divreiz pārbaudiet indeksa numuru 3. argumentā :)
VLOOKUP nedarbojas starp divām lapām
Vispirms jāatzīmē, ka iepriekš aplūkotās #N/A, #VALUE un #REF kļūdas var radīt tādas pašas problēmas, ja tās tiek meklētas no citas lapas. Ja tas tā nav, pārbaudiet šādus punktus:
- Pārliecinieties, ka ārējā atsauce uz citu lapu vai citu darbgrāmatu ir pareiza.
- Veicot Vlookup no citas darbgrāmatas, kas ir slēgts pārbaudiet, vai jūsu formulā ir norādīts pilns ceļš uz slēgto darbgrāmatu.
- Ja VLOOKUP nevar izvēlēties tabulas masīvu citā darblapā (t. i., kad izceļat diapazonu meklēšanas loksnē, logā table_array argumentu formulā vai formulas vedņa attiecīgajā lodziņā), tad, visticamāk, abas lapas ir atvērtas atsevišķos Excel eksemplāros un nevar sazināties savā starpā. Lai iegūtu vairāk informācijas, skatiet sadaļu Kā noteikt, kuri Excel faili atrodas kurā eksemplārā. Lai to novērstu, vienkārši aizveriet visus Excel logus un pēc tam atkal atveriet lapas/darbgrāmatas tajā pašā eksemplārā (noklusējuma darbība).
Kā Vlookup bez kļūdām programmā Excel
Ja nevēlaties biedēt lietotājus ar standarta Excel kļūdu apzīmējumiem, varat to vietā parādīt savu lietotājam draudzīgu tekstu vai atgriezt tukšu šūnu, ja nekas nav atrasts. To var izdarīt, izmantojot VLOOKUP ar IFERROR vai IFNA funkciju.
Visu kļūdu izķeršana
Programmā Excel 2007 un jaunākās versijās varat izmantot funkciju IFERROR, lai pārbaudītu, vai VLOOKUP formulā nav kļūdas, un atgrieztu savu tekstu (vai tukšu virkni), ja. jebkura kļūda tiek atklāts.
Piemēram:
=IFERROR(VLOOKUP(E1, A2:B10, 2, FALSE), "Ak, kaut kas nepareizi")
Programmā Excel 2003 un agrākajās versijās šim pašam nolūkam var izmantot formulu IF ISERROR:
=IF(ISERROR(VLOOKUP(E1, A2:B10, 2, FALSE)), "Oops, kaut kas gāja greizi", VLOOKUP(E1, A2:B10, 2, FALSE))
Sīkāku informāciju skatiet sadaļā IFERROR izmantošana ar VLOOKUP programmā Excel.
Kļūdu apstrāde #N/A
Lai fiksētu tikai #N/A kļūdas, ignorējot visus citus kļūdu tipus, izmantojiet funkciju IFNA (programmā Excel 2013 un jaunākās versijās) vai IF ISNA formulu (visās versijās).
Piemēram:
=IFNA(VLOOKUP(E1, A2:B10, 2, FALSE), "Ak, nav atrasta neviena atbilstība. Lūdzu, mēģiniet vēlreiz!")
=IF(ISNA(VLOOKUP(E1, A2:B10, 2, FALSE)), "Oops, nav atrasta neviena atbilstība. Lūdzu, mēģiniet vēlreiz!", VLOOKUP(E1, A2:B10, 2, FALSE))
Cerams, ka šī pamācība palīdzēs jums atbrīvoties no VLOOKUP kļūdām un jūsu formulas darbosies tā, kā vēlaties.