Excel VLOOKUP ei toimi - #N/A- ja #VALUE-virheiden vahvistaminen

  • Jaa Tämä
Michael Brown

Onko VLOOKUP-ohjelmasi vetämässä vääriä tietoja tai etkö saa sitä toimimaan lainkaan? Tämä opetusohjelma näyttää, miten voit nopeasti korjata yleiset VLOOKUP-virheet ja voittaa sen tärkeimmät rajoitukset.

Muutamissa aiemmissa artikkeleissa olemme käsitelleet Excelin VLOOKUP-toiminnon eri näkökohtia. Jos olet seurannut meitä tiiviisti, sinun pitäisi nyt olla asiantuntija tällä alalla :)

Monet Excel-asiantuntijat pitävät VLOOKUPia kuitenkin yhtenä Excelin monimutkaisimmista toiminnoista, eikä syyttä. Sillä on paljon rajoituksia, jotka aiheuttavat erilaisia ongelmia ja virheitä.

Tästä artikkelista löydät yksinkertaiset selitykset VLOOKUP-virheiden, kuten #N/A, #NAME ja #VALUE, tärkeimmistä syistä sekä niiden ratkaisut ja korjaukset. Aloitamme ilmeisimmistä syistä, miksi VLOOKUP ei toimi, joten voi olla hyvä idea tarkistaa alla olevat vianmääritysvaiheet järjestyksessä.

    VLOOKUPin #N/A-virheen korjaaminen

    VLOOKUP-kaavoissa näytetään virheilmoitus #N/A (eli "ei käytettävissä"), kun Excel ei löydä hakuarvoa. Tähän voi olla useita syitä.

    1. Etsintäarvo on kirjoitettu väärin.

    On aina hyvä tarkistaa ensin se ilmeisin asia : ) Virheitä esiintyy usein, kun työskentelet todella suurten, tuhansista riveistä koostuvien tietokokonaisuuksien kanssa tai kun hakuarvo kirjoitetaan suoraan kaavaan.

    2. #N/A likimääräisessä ottelussa VLOOKUP

    Jos kaava etsii lähimmän vastaavuuden, ( range_lookup argumentin arvoksi on asetettu TRUE tai se on jätetty pois), #N/A-virhe voi esiintyä kahdessa tapauksessa:

    • Etsintäarvo on pienempi kuin pienin arvo etsintäruudussa.
    • Hakusaraketta ei lajitella nousevaan järjestykseen.

    3. #N/A täsmälleen vastaavassa VLOOKUPissa

    Jos etsit tarkkaa vastaavuutta ( range_lookup argumentin arvoksi on asetettu FALSE), #N/A-virhe tapahtuu, kun hakuarvoa täsmälleen vastaavaa arvoa ei löydy. Lisätietoja on kohdassa VLOOKUP exact match vs. approximate match.

    4. Etsintäsarake ei ole taulukkomäärityksen vasemmanpuoleisin sarake.

    Yksi Excelin VLOOKUPin merkittävimmistä rajoituksista on se, että se ei voi katsoa vasemmalle. Näin ollen hakusarakkeen tulisi aina olla sarakkeessa vasemmanpuoleisin sarake Käytännössä unohdamme tämän usein ja päädymme #N/A-virheisiin.

    Ratkaisu : Jos tietoja ei ole mahdollista järjestää uudelleen niin, että hakusarake on vasemmanpuoleisin sarake, voit käyttää INDEX- ja MATCH-funktioita yhdessä vaihtoehtona VLOOKUP:lle. Seuraavassa on kaavaesimerkki: INDEX MATCH-kaava arvojen etsimiseen vasemmalta.

    5. Numerot muotoillaan tekstiksi.

    Toinen yleinen #N/A-virheiden lähde VLOOKUP-kaavoissa ovat tekstiksi muotoillut numerot joko pää- tai hakutaulukossa.

    Tämä tapahtuu yleensä silloin, kun tuot tietoja jostain ulkoisesta tietokannasta tai jos olet kirjoittanut apostrofin numeron eteen nollan osoittamiseksi.

    Seuraavassa on selvimpiä indikaattoreita tekstiksi muotoilluista numeroista:

    Ratkaisu: Valitse kaikki ongelmalliset numerot, napsauta virhekuvaketta ja valitse sitten Muunna numeroksi Lisätietoja on kohdassa Tekstin muuntaminen numeroksi Excelissä.

    6. Johtavat tai perässä olevat välilyönnit

    Tämä on vähiten ilmeinen syy VLOOKUP #N/A -virheeseen, koska ihmissilmä tuskin huomaa näitä ylimääräisiä välilyöntejä, varsinkin kun työskennellään suurten tietokokonaisuuksien kanssa, joissa suurin osa merkinnöistä on vierityksen alapuolella.

    Ratkaisu 1: ylimääräiset välilyönnit hakuarvossa

    Varmistaaksesi, että VLOOKUP-kaavasi toimii oikein, kääri hakuarvo TRIM-funktioon:

    =VLOOKUP(TRIM(E1), A2:C10, 2, FALSE)

    Ratkaisu 2: ylimääräiset välilyönnit hakusarakkeessa

    Jos hakusarakkeessa esiintyy ylimääräisiä välilyöntejä, ei ole helppoa tapaa välttää #N/A-virheitä VLOOKUPissa. Sen sijaan voit käyttää INDEX-, MATCH- ja TRIM-funktioiden yhdistelmää array-kaavana:

    =INDEX(B2:B10, MATCH(TRUE, TRIM(A$2:A$10)=TRIM(E1), 0)))

    Koska tämä on matriisikaava, älä unohda painaa Ctrl + Shift + Enter -näppäimiä, jotta kaava saadaan kunnolla valmiiksi (Excel 365:ssä ja Excel 2021:ssä, joissa matriisit ovat natiiveja, tämä toimii myös tavallisena kaavana).

    Vihje. Nopea vaihtoehto on Trim Spaces -työkalun käyttäminen, joka poistaa ylimääräiset välilyönnit sekä haku- että päätaulukoista sekunneissa ja tekee VLOOKUP-kaavoista virheettömiä.

    #VALUE! -virhe VLOOKUP-kaavoissa

    Yleensä Microsoft Excel näyttää #VALUE! -virheen, jos kaavassa käytetty arvo on väärää tietotyyppiä. VLOOKUPin osalta VALUE! -virheen lähteitä on kaksi yleistä.

    1. Etsintäarvo ylittää 255 merkkiä

    Huomaa, että VLOOKUP ei voi hakea arvoja, jotka sisältävät yli 255 merkkiä. Jos hakuarvot ylittävät tämän rajan, näyttöön tulee #VALUE! -virhe:

    Ratkaisu : Käytä sen sijaan INDEX MATCH -kaavaa. Meidän tapauksessamme tämä kaava toimii täydellisesti:

    =INDEX(B2:B7, MATCH(TRUE, INDEX(A2:A7= E1, 0), 0)))

    2. Etsintätyökirjan koko polkua ei ole toimitettu.

    Jos vedät tietoja toisesta työkirjasta, sinun on ilmoitettava sen täydellinen polku. Tarkemmin sanottuna sinun on suljettava työkirjan nimi laajennusosineen [hakasulkeisiin] ja määritettävä arkin nimi, jota seuraa huutomerkki. Jos työkirjan tai arkin nimi tai molemmat sisältävät välilyöntejä tai muita kuin aakkosellisia merkkejä, polku on suljettava yksinkertaisiin lainausmerkkeihin.

    Tässä on rakenne table_array argumentti Vlookupiin toisesta työkirjasta:

    '[työkirjan nimi]arkin nimi'!range

    Todellinen kaava voisi näyttää samankaltaiselta:

    =VLOOKUP($A$2,'[New Prices.xls]Sheet1'!$B:$D, 3, FALSE)

    Yllä oleva kaava etsii A2:n arvoa Sheet1:n sarakkeesta B sarakkeessa Uudet hinnat työkirjaa ja palauttaa vastaavan arvon sarakkeesta D.

    Jos jokin polun elementti puuttuu, VLOOKUP-kaavasi ei toimi ja palauttaa #VALUE-virheen (ellei hakukirja ole parhaillaan auki).

    Lisätietoja on osoitteessa:

    • Viittaaminen toiseen arkistoon tai työkirjaan Excelissä
    • Miten tehdä Vlookup eri työkirjasta?

    3. Argumentti col_index_num on pienempi kuin 1.

    On vaikea kuvitella tilannetta, jossa joku syöttää tarkoituksella numeron, joka on pienempi kuin 1, määrittääkseen sarakkeen, josta arvot palautetaan. Näin voi kuitenkin tapahtua, jos tämä argumentti palautetaan jollakin muulla VLOOKUP-kaavaan sisäkkäin sijoitetulla funktiolla.

    Jos siis col_index_num argumentti on suurempi kuin 1, kaava palauttaa myös #VALUE! -virheen.

    Jos col_index_num on suurempi kuin sarakkeiden lukumäärä taulukkotietueessa, VLOOKUP tuottaa #REF! -virheen.

    VLOOKUP #NAME -virheen ratkaiseminen

    Tämä on helpoin tapaus - #NAME? -virhe tulee näkyviin, jos olet kirjoittanut funktion nimen vahingossa väärin.

    Ratkaisu on ilmeinen - tarkista oikeinkirjoitus :)

    Excel VLOOKUPin virheiden tärkeimmät syyt

    Sen lisäksi, että VLOOKUP:lla on melko monimutkainen syntaksi, sillä on luultavasti enemmän rajoituksia kuin millään muulla Excel-funktiolla. Näiden rajoitusten vuoksi näennäisesti oikea kaava voi usein tuottaa tuloksia, jotka poikkeavat odotetusta. Alla on ratkaisuja muutamiin tyypillisiin tilanteisiin, joissa VLOOKUP epäonnistuu.

    VLOOKUP on case-sensitiivinen

    VLOOKUP-toiminto ei erota kirjainten kirjainkokoja ja pitää pieniä ja isoja kirjaimia samanlaisina.

    Ratkaisu : Käytä VLOOKUP-, XLOOKUP- tai INDEX MATCH -toimintoa yhdessä EXACT-toiminnon kanssa, joka voi mukauttaa tekstin isoja ja pieniä kirjaimia. Yksityiskohtaiset selitykset ja kaavaesimerkit löytyvät tästä opetusohjelmasta: 5 tapaa tehdä Excelissä isojen ja pienten kirjainten erittelyyn perustuva Vlookup.

    Taulukkoon lisättiin tai taulukosta poistettiin uusi sarake.

    Valitettavasti VLOOKUP-kaavat lakkaavat toimimasta joka kerta, kun hakutaulukosta poistetaan tai siihen lisätään uusi sarake. Näin tapahtuu, koska VLOOKUP-funktion syntaksi edellyttää paluusarakkeen indeksinumeron määrittelyä. Kun taulukkotietueeseen lisätään tai siitä poistetaan uusi sarake, indeksinumero muuttuu.

    Ratkaisu : INDEX MATCH -kaava tulee jälleen apuun : ) INDEX MATCH -kaavalla määrität haku- ja palautusalueet erikseen, joten voit poistaa tai lisätä niin monta saraketta kuin haluat ilman, että sinun on huolehdittava jokaisen siihen liittyvän kaavan päivittämisestä.

    Soluviittaukset muuttuvat, kun kaava kopioidaan muihin soluihin.

    Otsikossa annetaan tyhjentävä selitys ongelmasta, eikö niin?

    Ratkaisu : Käytä aina absoluuttisia viittauksia ($-merkin kanssa), kun käytät table_array argumentti, esimerkiksi $A$2:$C$100 tai $A:$C. Voit vaihtaa nopeasti eri viittaustyyppien välillä painamalla F4-näppäintä.

    VLOOKUP palauttaa ensimmäisen löydetyn arvon

    Kuten jo tiedät, Excelin VLOOKUP palauttaa ensimmäisen löytämänsä arvon. Voit kuitenkin pakottaa sen tuomaan 2., 3., 4. tai minkä tahansa muun haluamasi arvon. Voit myös saada viimeisen osuman tai kaikki löydetyt osumat.

    Ratkaisut : Esimerkkejä kaavoista on saatavilla täällä:

    • VLOOKUP ja palauttaa N:nnen esiintymän
    • VLOOKUP useita arvoja
    • XLOOKUP-kaava viimeisen ottelun saamiseksi

    Miksi VLOOKUP toimii joissakin soluissa mutta ei toisissa?

    Kun VLOOKUP-kaavasi palauttaa oikeat tiedot joissakin soluissa ja #N/A-virheitä toisissa soluissa, tähän voi olla muutamia mahdollisia syitä.

    1. Taulukkoryhmää ei ole lukittu

    Oletetaan, että sinulla on tämä kaava rivillä 2 (vaikkapa E2), joka toimii hyvin:

    =VLOOKUP(D2, A2:B10, 2, FALSE)

    Kun kaava kopioidaan riville 3, se muuttuu muotoon:

    =VLOOKUP(D3, A3:B11, 2, FALSE)

    Koska suhteellista viittausta käytetään table_array , se muuttuu sen rivin suhteellisen sijainnin perusteella, johon kaava on kopioitu, meidän tapauksessamme A2:B10:stä A3:B11:een. Jos vastaavuus on rivillä 2, sitä ei siis löydetä!

    Ratkaisu : Kun käytät VLOOKUP-kaavaa useammalle kuin yhdelle solulle, aina lukitse taulukkomääritys viittaus $-merkillä, kuten $A$2:$B$10.

    2. Tekstiarvot tai tietotyypit eivät vastaa toisiaan.

    Toinen yleinen syy VLOOKUPin epäonnistumiseen on ero hakuarvon ja hakusarakkeessa olevan vastaavan arvon välillä. Joissakin tapauksissa ero on niin hienovarainen, että sitä on vaikea havaita visuaalisesti.

    Ratkaisu : Kun VLOOKUP palauttaa #N/A-virheen, vaikka näet selvästi hakuarvon hakusarakkeessa ja ilmeisesti molemmat kirjoitetaan täsmälleen samalla tavalla, sinun on ensin määritettävä ongelman perimmäinen syy - kaava tai lähdetiedot.

    Jos haluat nähdä, ovatko nämä kaksi arvoa samat vai erilaiset, tee suora vertailu tällä tavalla:

    =E1=A4

    E1 on hakuarvosi ja A4 on hakusarakkeen identtinen arvo.

    Jos kaavan tulos on FALSE, se tarkoittaa, että arvot eroavat toisistaan jollakin tavalla, vaikka ne näyttävät täysin samanlaisilta.

    Jos kyseessä on numeeriset arvot todennäköisin syy on tekstiksi muotoillut numerot.

    Jos kyseessä on tekstiarvot Todennäköisesti ongelma on ylimääräisissä välilyönneissä. Voit tarkistaa tämän selvittämällä kahden merkkijonon kokonaispituuden LEN-funktiolla:

    =LEN(E1)

    =LEN(A4)

    Jos tuloksena olevat numerot ovat erilaisia (kuten alla olevassa kuvakaappauksessa), olet löytänyt syyllisen - ylimääräiset välilyönnit:

    Voit ratkaista ongelman joko poistamalla ylimääräiset välilyönnit tai käyttämällä tätä INDEX MATCH TRIM -kaavaa kiertotapana.

    Miksi VLOOKUP-ohjelmani käyttää vääriä tietoja?

    VLOOKUP voi palauttaa väärän arvon useammastakin syystä:

    1. Väärä hakutila Jos haluat tarkan vastaavuuden, muista asettaa asetukset range_lookup Oletusarvo on TRUE, joten jos jätät tämän argumentin pois, VLOOKUP olettaa, että etsit likimääräistä vastaavuutta ja etsii lähintä arvoa, joka on pienempi kuin hakuarvo.
    2. Hakusarake ei ole lajiteltu . likimääräistä vastaavuutta varten VLOOKUP ( range_lookup asetettu arvoon TRUE) toimiakseen oikein, taulukkomäärityksen ensimmäinen sarake on lajiteltava nousevassa järjestyksessä pienimmästä suurimpaan.
    3. Kaksoiskappaleet hakusarakkeessa Jos hakusarakkeessa on kaksi tai useampia päällekkäisiä arvoja, VLOOKUP palauttaa ensimmäisen löydetyn vastaavuuden, joka ei välttämättä ole se, jota odotit.
    4. Virheellinen paluusarake Tarkista 3. argumentin indeksinumero kahdesti :)

    VLOOKUP ei toimi kahden arkin välillä

    Ensinnäkin on huomattava, että edellä käsitellyt yleiset syyt #N/A-, #VALUE- ja #REF-virheisiin voivat aiheuttaa samoja ongelmia, kun etsitään toisesta arkista. Jos näin ei ole, tarkista seuraavat seikat:

    1. Varmista, että ulkoinen viittaus toiseen arkistoon tai toiseen työkirjaan on oikea.
    2. Kun teet Vlookupin toisesta työkirjasta, joka on suljettu tällä hetkellä, tarkista, että kaava sisältää suljetun työkirjan koko polun.
    3. Jos VLOOKUP ei voi valita taulukkoryhmää toisesta laskentataulukosta (ts. kun korostat alueen hakusivulla, mitään ei näy ikkunassa table_array argumentti kaavassa tai ohjatun kaavan vastaavassa laatikossa), niin todennäköisesti nämä kaksi arkkia ovat avoinna Excelin eri instansseissa eivätkä voi kommunikoida toistensa kanssa. Lisätietoja on kohdassa Miten määritetään, mitkä Excel-tiedostot ovat missäkin instanssissa. Korjaa tämä yksinkertaisesti sulkemalla kaikki Excel-ikkunat ja avaamalla arkit/työkirjat uudelleen samassa instanssissa (oletuskäyttäytyminen).

    Miten Vlookup ilman virheitä Excelissä

    Jos et halua pelotella käyttäjiäsi Excelin tavanomaisilla virhemerkinnöillä, voit sen sijaan näyttää oman käyttäjäystävällisen tekstin tai palauttaa tyhjän solun, jos mitään ei löydy. Tämä voidaan tehdä käyttämällä VLOOKUPia IFERROR- tai IFNA-toiminnon kanssa.

    Catch kaikki virheet

    Excel 2007:ssä ja uudemmissa versioissa voit käyttää IFERROR-funktiota VLOOKUP-kaavan tarkistamiseen virheiden varalta ja palauttaa oman tekstin (tai tyhjän merkkijonon), jos mikä tahansa virhe havaitaan.

    Esimerkiksi:

    =IFERROR(VLOOKUP(E1, A2:B10, 2, FALSE), "Hups, jotain meni pieleen")

    Excel 2003:ssa ja sitä aikaisemmissa versioissa voit käyttää IF ISERROR -kaavaa samaan tarkoitukseen:

    =IF(ISERROR(VLOOKUP(E1, A2:B10, 2, FALSE)), "Hups, jotain meni pieleen", VLOOKUP(E1, A2:B10, 2, FALSE)))

    Lisätietoja on kohdassa IFERRORin käyttäminen VLOOKUPin kanssa Excelissä.

    Käsittele #N/A virheet

    Jos haluat vangita vain #N/A-virheet ja jättää kaikki muut virhetyypit huomiotta, käytä IFNA-funktiota (Excel 2013 ja uudemmat versiot) tai IF ISNA-kaavaa (kaikki versiot).

    Esimerkiksi:

    =IFNA(VLOOKUP(E1, A2:B10, 2, FALSE), "Hups, vastaavuutta ei löytynyt. Yritä uudelleen!")

    =IF(ISNA(VLOOKUP(E1, A2:B10, 2, FALSE)), "Hups, vastaavuutta ei löytynyt. Yritä uudelleen!", VLOOKUP(E1, A2:B10, 2, FALSE))

    Siinä kaikki tältä päivältä. Toivottavasti tämä opetusohjelma auttaa sinua pääsemään eroon VLOOKUP-virheistä ja saamaan kaavasi toimimaan haluamallasi tavalla.

    VLOOKUPin käyttö Excelissä - video-opetusohjelma

    Michael Brown on omistautunut teknologian harrastaja, jolla on intohimo yksinkertaistaa monimutkaisia ​​prosesseja ohjelmistotyökalujen avulla. Yli vuosikymmenen kokemuksella teknologia-alalta hän on hionut taitojaan Microsoft Excelissä ja Outlookissa sekä Google Sheetsissä ja Docsissa. Michaelin blogi on omistettu jakamaan tietojaan ja asiantuntemustaan ​​muiden kanssa, ja se tarjoaa helposti seurattavia vinkkejä ja opetusohjelmia tuottavuuden ja tehokkuuden parantamiseksi. Olitpa kokenut ammattilainen tai aloittelija, Michaelin blogi tarjoaa arvokkaita oivalluksia ja käytännön neuvoja, joiden avulla saat kaiken irti näistä tärkeistä ohjelmistotyökaluista.