Quantcast
Channel: Guru-vinkki – HExcelligent.fi
Viewing all articles
Browse latest Browse all 20

VLOOKUP ja MATCH ne yhteen soppii

$
0
0

VLOOKUP (PHAKU) on yksi Excelin tunnetuimmista funktioista, mutta silti se kirjoitetaan usein muodossa, joka edellyttää kaavan toistuvaa muokkaamista tai voi johtaa vääriin tuloksiin.

Seuraava funktio hakee solussa B1 olevaa koodia A4:D8-alueelta ja poimii yksikköhinnan alueen neljännestä sarakkeesta antaen tulokseksi luvun 12. Funktiohan antaa täysin oikean tuloksen, joten onko siinä jotain vikaa?

VLOOKUP perinteisesti

Yllä oleva kaava on tosiaankin täysin oikein, ja se sopii mainiosti tilanteisiin, joissa luetteloon ei tule uusia sarakkeita eikä niitä poisteta.

Mutta entäpä aineistot, joiden rakenteeseen tulee säännöllisesti muutoksia? Mikäli funktion sarakenumeroa ei muuteta, VLOOKUP noutaa tietoja väärästä sarakkeesta. Tällaista virhettä on joskus vaikea havaita, jos numeerisia sarakkeita on kymmenittäin ja VLOOKUP-funktioita on runsaasti.

Sarakenumeron sijaan voi käyttää MATCH (VASTINE) -funktiota, joka kertoo otsikon eli sarakkeen sijainnin. Seuraava kaava etsii alueelta A4:D4 merkkijonoa ”yksikköhinta” ja antaa tuloksena sijainnin. Kolmas argumentti (koodi 0) määrittää, että funktio hakee täsmälleen samaa merkkijonoa.

=MATCH(”yksikköhinta”;  A4:D4;   0)

Kun MATCH sijoitetaan VLOOKUP-funktioon sarakenumeron tilalle, VLOOKUP hakee oikean tiedon vaikka Yksikköhinta-sarake siirtyisi kunhan se sijaitsee koodi-sarakkeen oikealla puolella.

=VLOOKUP(B1; A4:D8;  MATCH(”yksikköhinta”;  A4:D4;   0);  FALSE) tai

=VLOOKUP(B1; A4:D8;  MATCH(A2;  A4:D4;   0);  FALSE)

Tämä funktio antaa myös tarkoituksenmukaisesti virheilmoituksen, jos kyseistä sarakeotsikkoa ei löydy.

Jos aineisto on muutettu Data-nimikseksi taulukoksi, funktion voisi kirjoittaa muodossa:

=VLOOKUP(B1; Data; MATCH(A2; Data[#Headers]; 0); FALSE)

… ja huomenna viedään pussauskoppii … match made in heaven.



Viewing all articles
Browse latest Browse all 20

Trending Articles