FKERES/VLOOKUP 1 vagy 0 – Mi a különbség?
Szerző: Csáki Dávid Közzétéve:
Ha 0-át teszel az FKERES (VLOOKUP) végére, azzal minden esetben pontos egyezést kapsz. Mindig a lista első találatát adja eredményül a függvény. Ha 1-et teszel a VLOOKUP végére, akkor a sorbarendezett adatok utolsó értékét fogod megkapni. Itt nagyon fontos, hogy sorba kell rendezned az adatokat, különben hibásan fog működni a vlookup 1.
Videó
Röviden a Vlookup függvényről
A VLOOKUP (vagy magyarul FKERES) függvény arra alkalmas, hogy egy táblázatból függőlegesen kikeressünk bizonyos értékeket. A hibátlan fkeres függvényhez 4 adatot kell megadni:
- Mit keresek? (A fenti videóban először az SAP ID-t kerestem, aztán a Nevet). Ezt nevezzük keresési értéknek.
- Hol keresek? A tartomány, ahol a keresési érték megtalálható. Ennek a tartományak az első oszlopában kell, hogy szerepeljen a keresési érték, és tőle jobbra valamelyik oszlopban a visszatérési érték. A videóban két példát is láthattál erre (1) amikor az SAP ID alapján kerestünk, akkor a tartomány az „A” oszloptól indult, (2) amikor a névre kerestünk, akkor pedig a „D” oszloptól.
- Hányadik oszlopban keresek? Ez másnéven a visszatérési érték oszlopszáma. Az excel videóban láttad, hogy amikor az SAP volt a keresési érték, akkor a fizetés a 7. oszlopba esett, amikor pedig a név volt a keresési érték, akkor a 4. oszlopba.
Opcionálisan megadhatjuk, hogy közelítő egyezést szeretnénk (1 – IGAZ), vagy pontos egyezést (0 – HAMIS). Ha nem adunk meg semmit, az alapértelmezett érték az IGAZ (1), vagyis a közelítő egyezés lesz. Ezt a részt tisztázza a vidó, hogy mikor melyiket használjuk a vlookup végén.
FKERES IGAZ/HAMIS különbség
Tegyük fel, hogy van egy összesítő riportod, amiből téged mindig csak két érték érdekel: mi volt az első adat, és mi volt az utolsó. Ha elrugaszkodunk a vidóban látott HR-es példától, akkor beleképzelhetjük magunkat egy olyan esetbe, amikor például arra vagyunk kíváncsiak, hogy milyen mértékben változtak a termékek árai a vizsgált időszakban. Ehhez két értékre van szükségünk: mi volt a kiinduló ár, mi az utolsó ár.
Jó megoldás lehet például
Többféle jó megoldás létezik. Az egyik jó megoldás, ha csinálsz két külön táblát. Az egyik táblában dátum szerint növekvő sorrendet követsz, a másikban csökkenőt. És mindkét táblából vlookup segítségével kikeresed az adott termék árát (vagy a HR-es példa esetében az adott ember fizetését). Ekkor a vlookup végére 0 kerül, és az első excel tábládból (ahol dátum szerint növekvő a sorrend), ott az első értéket fogod megkapni, a második excel tábládból (ahol dátum szerint csökkenő sorrend van), ott pedig az utolsó értéket. Így könnyedén össze tudod hasonlítani a kiinduló értéket a jelenlegivel.
Ez persze olyankor már nem működik hatékonyan, amikor több ezer soros, és 50+ oszlopos exceleid vannak, mert ilyenkor már tárhely pazarlás két táblában tárolni az adatokat. Arról ne is beszéljünk, hogy többletmunkát okozol magadnak azáltal, hogy mindig két táblában kell frissíteni mindent. Úghogy ezt az ötletet vessük is el!
Másik jó megoldás
Csinálhatsz egy pivot táblát (kimutatás), ahol a sorokba behúzod az egyedi azonosítókat (pl. SAP ID, Cikkszám, stb), az oszlopokba behúzod a hónapokat (ahol minden frissítésnél ügyelsz arra, hogy csak az első és utolsó hónap legyen bent), az értékek közé pedig behúzod a keresett értékeket (pl. fizetés, termék ára, stb). Így megkapsz egy két oszlopos táblázatot, ahol az első oszlop az első fizetést, a második oszlop pedig az utolsó fizetést tartalmazza.
Ennek is nyilván vannak hátrányai, pl. minden frissítésnél figyelned kell, hogy csak az első és az utolsó hónap legyen a táblában. Elképzelhető, hogy neked nem hónapokra, hanem akár percekre, másodpercekre vannak bontva az adataid, ekkor nyilván ez a módszer már egyálalán nem jöhet szóba. Úghyogy ez sem túl hatékony.
Szerintem erre a problémára a fenti excel videóban szereplő megoldás a leghatékonyabb.
VLOOKUP 0 és VLOOKUP 1 a legjobb megoldás
A legegyszerűbb és talán a legjobb megoldás is az, ha függvény segítésével kezeljük ezt a problémát. Ehhez viszont egyetlen szabályt be kell tartanod:
Rendezd sorba a táblát a keresési érték szerint
(a videóban ez először az SAP ID, majd a Név volt)
Ha megvan a sorbarendezés, akkor már könnyű a dolgod. Abban az esetben, ha az első fizetését szeretnéd megkapni az adott SAP ID-hoz tartozó embernek, ezt az excel függvényt kell követned:
=VLOOKUP(J2;A:G;7;0)
- Mit keresek? A „J2” cellában lévő SAP ID-t
- Hol keresem? Az „A:G” oszlopokban, aminek az első oszlopában az SAP ID-k vannak. Azért oszlopokra keresek, mert így bármikor bővíteni tudom a táblát lefelé.
- Hányadik oszlopban van a keresett érték? A 7. oszlop tartalmazza a fizetést, ezért ez kell
- Pontos vagy közelítő egyezés? „0” –> tehát pontos egyezés
Ha az utolsó fizetésre van szükséged, akkor az alábbi excel függvényt használd:
=VLOOKUP(J2;A:G;7;1)
- Mit keresek? A „J2” cellában lévő SAP ID-t
- Hol keresem? Az „A:G” oszlopokban, aminek az első oszlopában az SAP ID-k vannak. Azért oszlopokra keresek, mert így bármikor bővíteni tudom a táblát lefelé.
- Hányadik oszlopban van a keresett érték? A 7. oszlop tartalmazza a fizetést, ezért ez kell
- Pontos vagy közelítő egyezés? „1” –> tehát közelítő egyezés
Ezzel pedig ha SAP ID (és persze hónapok) alapján vannak sorbarendezve az adatok, akkor megkapod az adott személy utolsó fizetését.
Ez a megoldás azért is jó, mert tudsz egy külön oszlopot csinálni, ahol csak egyedi SAP ID-k vannak, a mellette lévő oszlopban bekeresed az első fizetést, még eggyel arrébb lévő oszlopban az utolsó fizetést, és bármikor szabadon bővítheted az alap táblád sorait, hiszen a VLOOKUP függvényt oszlopokra alkalmaztad. Így akár az egész tábla egy PowerQuery automatizációval is tud bővülni, amiről itt találsz egy hasznos leírást.
Ideje fejleszteni Excel tudásod kifogások nélkül!
Ha úgy érzed, van még mit tanulni, és szeretnél minél többmindent automatizálni (hogy valódi értéket tudj teremteni), akkor miért ne jönnél el egy excel képzésre, ahol könnyed magyarázatokon keresztül olyan dolgokat tanulhatnál meg, amikről talán még nem is hallottál?
0 hozzászólás