A következő, egy valós probléma kapcsán felmerült Excelt-kérdést igyekeztem igencsak általános formába önteni az egyszerűbb érthetőség kedvéért, de így is igencsak megdolgoztatja az ember agytekervényeit, hiszen bármennyire is egyszerűnek tűnik a kérdés, a válasz meglelése már okozhat egy kis fejtörést (bár ez a feladat talán Excel-guruknak nem okoz akkora kihívást, viszont mindenki másnak igencsak jó tanulási lehetőség). Szóval a példánk két táblázatát kellene összekapcsolni, méghozzá úgy, hogy a B ("Megoldás") oszlopba kerüljön be az A oszlopban lévő mondatokban szereplő színek alapján a színekhez tartozó szám az E oszlopból.
Már a példa felvázolása is utal arra, hogy itt valamiféle VLOOKUP-jellegű megoldást kell keresni, és ebben nincs is nagy tévedés, hiszen a megoldást a (nem is annyira) nagyszerű LOOKUP rejti magában, amelynek használata nem meglepő módon eléggé visszaszorult, hiszen a VLOOKUP jelentősen egyszerűbb és könnyebb használatot tesz lehetővé.
A LOOKUP ugyanis az első paramétereként megadott értéket fogja keresni egy, a második paramétereként megadott tartományban, majd találat esetén a harmadik paramétereként tartományból adja ki az előbbi tartománnyal egy sorban/oszlopban szereplő értéket.
Azaz a =LOOKUP(5,A2:A5,D2:D5) megnézi, hogy A2:A5 tartományban hol van az ötös érték, majd az ezzel egy sorban lévő értéket dobja nekünk vissza D2:D5 tartományból.
Viszont itt meg kell állnunk egy kicsit, ugyanis a LOOKUP-nak van egy olyan tulajdonsága, amelyet én kifejezetten nem kedvelek és emiatt nem is annyira szeretem használni ezt a formulát, ez pedig az, hogy emelkedő sorrendben kell lenniük a második paraméterként megadott tartományban az értékeknek, hogy helyesen működjön, ugyanis a függvény logikája alapján feltételezi az emelkedő sorrendet.
Lásd a lenti példát, függvényünk az elvárt 1 helyett 3-at ad vissza, de ha jól megnézzük, pont azért, mert nem növekvő a sorrendünk. Ha emelkedőbe vágjuk a színek sorozatát, akkor máris azt kapjuk, amit elvárunk. Ugye milyen vicces?
Na de ugorjunk vissza a kiinduló problémához. A LOOKUP formulával tehát nagyjából megbarátkoztunk, de lehet, hogy sokaknak még nem áll össze, hogy ez pontosan hogy is fog segíteni nekünk, ami érthető is, ugyanis még van egy másik függvény is, amit majd a LOOKUP-ba kell ágyaznunk, ez pedig igencsak szorgos és hasznos kis barátunk, a SEARCH. Szerintem nem nagyon van Excelt rendszeresen használó ember, aki ezt ne ismerné, hiszen kis formulánk az első paramétereként megadott szót/szövegrészt fog egy, a második paramétereként megadott szövegben keresni és visszaadja, hogy hányadik karakternél kezdődik keresett szövegünk.
Például a =SEARCH("Autó",D2) az Autó szót fogja megkeresni a D2 cellában és megadja, hogy az adott szövegben hányadik karakternél kezdődik a szó.
Ezzel pedig már össze is állt a kiinduló kérdésünk megoldásához vezető út, hiszen elsőként meg kell keresnünk hányadik karakternél indulnak az aktuális színek az A oszlopban szereplő szövegekben, majd ezt egy LOOKUP-ba kell ágyaznunk. Igenám, de mit keressünk és hol? Mert az egyértelmű, hogy a LOOKUP harmadik paramétere az E2:E6 tartomány lesz, hiszen itt csücsülnek eredményeink. Hogy hol keresünk, az is nagyjából összeállhat, hiszen itt a SEARCH által létrehozott tartomány lesz a kulcs, azaz a színeket megkeressük a szövegrészekben/mondatokban, majd az így kapott karakterszámokból összeálló tartomány lesz második paraméterünk a LOOKUP-ban. Így már az is adja magát, hogy a keresett értékünk valami jó nagy szám legyen, azaz lefedje az összes lehetséges karakterszámot - ergó, mivel egy cellába emlékeim szerint 32767 karakter fér, adjuk meg ezt a számot (de jelen esetben a leghosszabb mondatunk hossza is megteheti).
Így a megoldásunk:
=LOOKUP(32767,SEARCH(D$2:D$6,A2),E$2:E$6)