Office Guru

Tovább feszegetjük a VLOOKUP határait: ezúttal CHOOSE formula bevetésével

2016. november 25. - Office Guru

Nem ez lesz az első és valószínűleg nem is az utolsó alkalom, amikor az Excel VLOOKUP függvénye lesz terítéken egy posztban a blogon, hiszen szerintem az egyik leggyakrabban használt függvényről van szó a táblázatkezelőben, amelyet ráadásul elég rugalmasan lehet használni. Az rengetegszer elhangzik, hogy legnagyobb hibája az, hogy kizárólag balról jobbra tud keresni, fordított esetben mindenképpen az INDEX és MATCH függvények együttes használatára van szükség. Még én is írtam róla ITT.

Igen, mondhatjuk akár azt is, hogy ez már ezer éve lerágott csont és mai makrós világunkban egy valamire való hozzáértő fejből megírja VBA-ban egy ilyen helyzet lekezelését, de én mégis kitartok amellett, hogy fontos megismernünk a formulákat és ha lehetséges, használjuk is őket.

A mai posztban ugyanis egy másik megoldást is megmutatok arra, hogy hogyan lehet a VLOOKUP-ot arra ösztökélni, hogy jobbról-balra is keressen - mindössze egy beágyazott CHOOSE függvényre van ehhez szükségünk.

Adott a következő feladat:

vlookupback1.jpgMaga a megoldás roppantul egyszerű lesz, egyetlen új dolgot kell hozzá megértenünk, méghozzá a CHOOSE függvény és a tömbök kapcsolatát. Hiszen ennek a formulának a legegyszerűbb felhasználási módját valószínűleg mindenki ismeri, de senki nem használja:

=CHOOSE(2,"Tamás","Dániel")

Értelemszerűen ez a fenti a Dániel eredményt fogja megadni nekünk, hiszen a CHOOSE alapesetben az első paramétereként megadott "indexnek" megfelelő értéket fogja visszaadni a második, harmadik stb. paramétereként megadott értékhalmazból.

Tömbök esetén már viccesebb a helyzet, hiszen mondjuk:

=CHOOSE({1,2},A:A,B:B)

értelemszerűen az 1 és a 2 indexek mindkét lehetőségét megvizsgálja, ergó létrehoz nekünk egy két oszlopból (A-ból és B-ből) álló táblát. Ha viszont kicsit bedurvulunk és a következőt adjuk be a formulába:

=CHOOSE({1,2},A1:B3,C1:D3)

Ez egy olyan kétoszlopos táblát fog létrehozni, amelynek első oszlopába az A1:A3 (hiszen az első paraméter egyes indexével az első értékparaméter első oszlopát hivatkoztuk meg), második oszlopába pedig a D1:D3 értékek kerülnek (hiszen az első paraméter kettes indexével a második értékparaméter második oszlopát hivatkoztuk meg).

És ha most átgondoljuk a feladványunkat, máris látjuk, hogy miért volt jó ez nekünk - a CHOOSE segítségével létrehozhatunk egy olyan táblát, amelynek első oszlopa az eredeti táblában szereplő név-oszlop lesz, második oszlopa pedig a város neve.

Valahogy így:

CHOOSE({1,2},E3:E7,C3:C7)

Túlságosan meg sem kellett bonyolítani, hiszen annyit kellett csak tennünk, hogy előbb írtuk be az E3:E7 tartományt paraméterként, mint a C3:C7 tartományt.

És innentől kezdve erre szépen ráereszthetjük a VLOOKUP-ot is:

=VLOOKUP(I2,CHOOSE({1,2},E3:E7,C3:C7),2,0)

vlookupback2.jpgTehát az I2 cellában megadott nevet megkeresi abban az ideiglenes, CHOOSE által megalkotott táblában, amelynek első oszlopa a név, második oszlopa pedig a város. Ugye milyen egyszerű?

A bejegyzés trackback címe:

https://officeguru.blog.hu/api/trackback/id/tr811998838

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása