Tässä ohjeaiheessa kuvataan yleisimmät PHAKU-funktion syyt funktion virheelliseen tulokseen ja annetaan ehdotuksia INDEKSI- ja VASTINE-funktioiden käyttämiseksi.
: Tutustu myös ohjeartikkeliin Pikaopas: PHAKU-funktion vianmääritysohjeet. Siinä yleiset #PUUTTUU!-ongelmat esitetään kätevästi PDF-tiedostossa. Voit jakaa PDF-tiedoston muille tai tulostaa sen omaan käyttöösi.
Ongelma: Hakuarvoa ei ole taulukko_matriisi-argumentin ensimmäisessä sarakkeessa
Yksi PHAKU-funktion rajoituksista on, että se voi etsiä arvoja vain matriisin vasemmanpuoleisimmasta sarakkeesta. Jos hakuarvosi ei ole matriisin ensimmäisessä sarakkeessa, näkyviin tulee siksi #PUUTTUU!-virhearvo.
Seuraavassa taulukossa haluamme noutaa Lehtikaali-tuotteen myydyt yksiköt.
#PUUTTUU!-virhe johtuu siitä, että hakuarvo ”Lehtikaali” on taulukko_matriisi-argumentin A2:C10 toisessa sarakkeessa (Tuote). Tässä tapauksessa Excel etsii sitä sarakkeesta A sarakkeen B sijaan.
Ratkaisu: Voit yrittää korjata ongelman säätämällä PHAKU-funktiota viittaamaan oikeaan sarakkeeseen. Jos se ei ole mahdollista, yritä siirtää sarakkeita. Se myös voi olla hyvin hankalaa, jos sinulla on suuria tai monimutkaisia laskentataulukoita, joissa solujen arvot ovat muiden laskutoimitusten tuloksia. Voi olla muitakin loogisia syitä, joiden takia et voi liikkua sarakkeissa. Ratkaisu on käyttää INDEKSI- ja VASTINE-funktioiden yhdistelmiä, joilla voidaan etsiä arvo sarakkeesta riippumatta sen sijainnista hakutaulukossa. Katso lisätiedot seuraavasta osiosta.
INDEKSI-/VASTINE-funktioiden käyttäminen sen sijaan
INDEKSI- ja VASTINE -funktiot ovat hyviä vaihtoehtoja useissa tilanteissa, joissa PHAKU ei vastaa tarpeitasi. INDEKSI-/VASTINE-funktioiden etuna on se, että voit etsiä arvoa sarakkeesta missä tahansa hakutaulukon sijainnissa. INDEKSI palauttaa arvon määritetystä taulukosta tai alueesta sen sijainnin mukaan. VASTINE palauttaa arvon suhteellisen sijainnin taulukossa tai alueessa. INDEKSI- ja VASTINE-funktioilla voit yhdessä kaavassa etsiä arvon taulukosta tai matriisista määrittämällä arvon suhteellisen sijainnin taulukossa tai matriisissa.
INDEKSI-/VASTINE-funktioiden käytöstä PHAKU-funktion sijaan on useita etuja:
-
INDEKSI- ja VASTINE-funktioissa palautetun arvon ei tarvitse olla samassa sarakkeessa kuin hakusarakkeessa. Tämä eroaa PHAKU-funktiosta, jossa palautusarvon on oltava määritetyllä alueella. Mitä merkitystä tällä on? PHAKU-funktiota käyttäessäsi sinun on tiedettävä palautusarvon sisältävän sarakkeen numero. Vaikka se ei alkuun vaikuta haastavalta, se voi olla vaivalloista, kun käytössä on suuri taulukko ja sarakkeiden määrä on laskettava. Jos lisäksi lisäät taulukkoon sarakkeen tai poistat sarakkeen, määrä on laskettava uudelleen ja sar_indeksi_nro-argumentti on päivitettävä. INDEKSI- ja VASTINE-funktioissa laskentaa ei tarvita, koska hakusarake ei ole on sama kuin palautusarvon sisältävä sarake.
-
INDEKSI- ja VASTINE-funktioita käyttäessäsi voit määrittää matriisin rivin tai sarakkeen tai molemmat. Tämä tarkoittaa, että voit hakea arvoja sekä pysty- että vaakasuuntaisesti.
-
INDEKSI- ja VASTINE-funktioita voidaan käyttää arvojen hakuun mistä tahansa sarakkeesta. Toisin kuin PHAKU-funktio, jolla voidaan hakea arvo vain taulukon ensimmäisestä sarakkeesta, INDEKSI ja VASTINE toimivat, onpa hakuarvo sitten ensimmäisessä tai viimeisessä sarakkeessa tai missä tahansa niiden välillä.
-
INDEKSI- ja VASTINE-funktioiden monipuolisuuden ansiosta niillä voidaan toteuttaa dynaamisia viittauksia sarakkeeseen, joka sisältää paluuarvon. Tämä tarkoittaa, että voit lisätä taulukkoon sarakkeita ilman, että INDEKSI- ja VASTINE-funktiot lakkaisivat toimimasta. PHAKU-funktion toiminta taas lakkaa, jos sinun pitää lisää taulukkoon sarake, koska tämä funktio luo staattisen viittauksen taulukkoon.
-
INDEKSI- ja VASTINE-funktiot tarjoavat paremman joustavuuden vastineiden hakuun.INDEKSI- ja VASTINE-funktiot löytävät hakuarvon täsmälliset vastineet tai sitä suuremmat arvot tai sitä pienemmät arvot. PHAKU-funktio hakee (oletusarvoisesti) vain arvon lähimmän tai täsmällisen vastineen. PHAKU-funktio myös olettaa oletusarvoisesti, että taulukkomatriisin ensimmäinen sarake on lajiteltu aakkosjärjestykseen. Jos taulukkoasi ei ole lajiteltu näin, PHAKU-funktio palauttaa taulukon ensimmäisen lähimmän vastineen, joka ei ehkä ole etsimäsi tieto.
Syntaksi
Kun haluat luoda syntaksin INDEKSI- ja VASTINE-funktioille, sinun on käytettävä INDEKSI-funktiosta luotua matriisia tai viittausargumenttia ja sijoitettava VASTINE-syntaksi sen sisään. Tämä onnistuu seuraavassa muodossa:
=INDEKSI(matriisi tai viittaus, VASTINE(hakuarvo,haku_matriisi,[vastine_laji])
Korvataan seuraavaksi edellä olevassa esimerkissä PHAKU-funktio INDEKSI- ja VASTINE-funktiolla. Syntaksi näyttää tällaiselta:
=INDEKSI(C2:C10;VASTINE(B13;B2:B10;0))
Tämä tarkoittaa:
=INDEKSI(palauttaa arvon alueelta C2:C10, jonka VASTINE(Lehtikaali, joka on matriisin alueella B2:B10, missä palautusarvo on ensimmäinen arvo, joka vastaa arvoa Lehtikaali))
Kaava etsii alueelta C2:C10 ensimmäisen arvon, joka vastaa arvoa Lehtikaali (solussa B7) ja palauttaa arvon C7 (100), joka on ensimmäinen arvoa Lehtikaali vastaava arvo.
Ongelma: Täsmällistä vastinetta ei löydy
Kun alue_haku-argumentin arvo on EPÄTOSI eikä PHAKU löydä täsmällistä vastinetta tiedoista, se palauttaa virhearvon #PUUTTUU!.
Ratkaisu: Jos olet varma, että oleelliset tiedot ovat laskentataulukossa, eikä PHAKU-funktio löydä niitä, varmista, ettei viitatuissa soluissa ole piilotettuja välilyöntejä eikä tulostumattomia merkkejä. Varmista myös, että solut ovat oikean tietotyypin mukaisia. Esimerkiksi lukuja sisältävät solut pitäisi muotoilla Luku-vaihtoehdolla Teksti-vaihtoehdon sijaan.
Harkitse myös solujen tietojen siivoamista SIIVOA- tai POISTA.VÄLIT-funktiolla.
Ongelma: Hakuarvo on pienempi kuin pienin matriisissa oleva arvo
Jos alue_haku-argumentin arvoksi on määritetty TOSI ja hakuarvo on pienempi kuin matriisin pienin arvo, näkyviin tulee #PUUTTUU!-virhearvo. TOSI etsii lähes tarkkaa vastinetta matriisista ja palauttaa lähimmän arvon, joka on pienempi kuin hakuarvo.
Seuraavassa esimerkissä hakuarvo on 100, mutta alueella B2:C10 ei ole arvoa, joka olisi pienempi kuin 100. Virhe johtuu siitä.
Ratkaisu:
-
Korjaa hakuarvo tarpeen mukaan.
-
Jos et voi muuttaa hakuarvoa ja tarvitset enemmän joustavuutta vastineiden täsmäämisessä, harkitse INDEKSI- ja VASTINE-funktioiden käyttöä PHAKU-funktion käytön sijaan – katso edellä oleva osa tästä artikkelista. INDEKSI- ja VASTINE-funktioilla voit hakea arvot, jotka ovat suurempia tai pienempiä kuin hakuarvo tai yhtä suuria kuin hakuarvo. Lisätietoja INDEKSI- ja VASTINE-funktioiden käytöstä PHAKU-funktion sijaan on tämän ohjeaiheen aiemmissa osissa.
Ongelma: Hakusaraketta ei ole lajiteltu nousevaan järjestykseen
Jos alue_haku-argumentin arvo on TOSI eikä jotakin hakusarakkeista ole lajiteltu nousevaan (A–Ö) järjestykseen, näkyvissä on virhearvo #PUUTTUU!.
Ratkaisu:
-
Muuta PHAKU-funktio etsimään tarkat vastineet. Jos haluat etsiä tarkan vastineen, määritä alue_haku-argumentin arvoksi EPÄTOSI. EPÄTOSI-arvo ei vaadi lajittelua.
-
INDEKSI- ja VASTINE-funktioiden avulla voit hakea arvon lajittelemattomasta taulukosta.
Ongelma: Arvo on suuri liukuluku
Jos soluissa on aika-arvoja tai suuria desimaalilukuja, Excel palauttaa #PUUTTUU!-virhearvon liukuluvun tarkkuuden vuoksi. Liukuluvut ovat lukuja, jotka ovat desimaalipilkun jälkeen. (Excel tallentaa aika-arvot liukulukuina.) Excel ei osaa tallentaa lukuja, joiden liukuluvut ovat hyvin suuret. Jotta funktio toimisi oikein, liukuluvut on pyöristettävä 5 desimaalin tarkkuuteen.
Ratkaisu: Lyhennä luvut mukaan pyöristämällä ne ylöspäin enintään viisi desimaalia, PYÖRISTÄ-funktion avulla.
Tarvitsetko lisätietoja?
Voit aina kysyä neuvoa Excel Tech Community -yhteisön asiantuntijalta tai saada tukea tukiyhteisöltä.