Nézzünk meg egy olyan módszert, amivel egymásra épülő legördülő listákat lehet létrehozni. Ez azt jelenti, hogy egy listából választok pl: egy országot, majd a mellette lévő cellában már csak az adott ország kereskedőiből tudok választani szintén listából.
A feladatban használt fájlt innen letöltheted.
Legördülő lista
Az érvényesítési eszközökről már volt szó az Egy érték egyszer szerepeljen blogposztban és a Legördülő lista bejegyzésben, de nézzük meg most újra általánosan milyen lehetőségeket is takar ez.
A legördülő listáról további példákat találsz az exceltanfolyam.info oldalunkon: Excel legördülő lista megoldással
Az Adatok menüpont (Data) alatt találod az Érvényesítés (Data validation) parancsot, amely arra szolgál, hogy egy adott cellának az értékét korlátozhasd.
Az érvényesítési feltételek között találod alábbi listát, lehetőségeket. Korlátozhatod úgy egy cella értékét, hogy csak egész számokat lehessen megadni, vagy tizedes törteket és ezeket valamilyen intervallumra is szűkítheted. Meghatározhatod, hogy csak dátumot vagy időpontot lehessen beírni, vagy pedig a beírt szöveg hossza ne haladhasson meg egy adott számú karaktert.
A legördülő listákhoz a Lista (List) opciót kell választanod, és forrásként egy cellatartományt fogad el, aminek az elemei fognak így megjelenni a legördülő listában. Az alábbi példán látod, hogy a 3 kiválasztható ország az E11:E13-as cellákban van, ezért a forrás a Lista alatt is pontosan ez lesz.
Többszintű legördülő lista – egyik eset
Attól függően, hogy melyik országot választjuk, szeretnénk, hogy a Kereskedő alatt csak azok a lehetőségek jelenjenek meg, amelyek az adott országhoz tartoznak.
Erre több lehetőségünk is van.
A Lista kiválasztása után a Forrásban nem csak egy fix cellahivatkozást lehet megadni, hanem bármilyen függvény is használható.
Így adott esetben az egyik kézenfekvő megoldás, hogy egymásba ágyazunk két HA függvényt és az A11-es cella értékétől függően változik a forrás hivatkozása.
Nézzük meg ezen a példán, hogy ez hogy is nézhet ki!
Többszintű legördülő lista – HA függvények
A B11-es cellában található Érvényesítési szabály a következő:
=HA($A$11=”Magyarország”;$G$11:$G$15;HA($A$11=”Szlovákia”;$H$11:$H$15;$I$11:$I$15))
Amennyiben az A11-es cella értéke Magyarország, akkor a G oszlop elemei választhatók, ha Szlovákia, akkor a H oszlop, minden egyéb esetben pedig az I oszlop elemei.
Ez a megoldás is teljesen tökéletes, de hordoz magában pár korlátot.
- Egyrészt minél több Országot választhatunk, annál több egymásba ágyazott HA függvényre van szükségünk.
- Másrészt pedig, ha bővül az adott országhoz tartozó Kereskedők listája, akkor vissza kell jönnünk az Érvényesítési beállításokhoz és a megfelelő cellahivatkozást megváltoztatni.
Hogyan tehetjük meg ezt hatékonyabban?
Többszintű legördülő lista hatékonyan
Két dologra lesz szükségünk ahhoz, hogy nagyobb rugalmassága legyen az ország választására épülő listánknak.
- Egyrészt ismernünk kell az INDIREKT függvényt (angolul INDIRECT).
- Másrészt pedig el kell neveznünk az adott országhoz tartozó Kereskedők listáját.
A trükk abban rejlik, hogy a Kereskedők listájának pontosan azt a nevet adjuk, amely az Országok listában is szerepel, így az INDIREKT függvény segítségével az A oszlopban választott elem egyenesen a megfelelő listára fog mutatni.
Névtartomány létrehozása legördülő listához
Jelöld ki a Magyarország alatti Kereskedőket, majd kattints a bal felső sarokban található Név mezőbe és írd be, hogy Magyarország, majd zárd be Enterrel. Ismételd ezt meg a másik két országra is!
Tehát az adott példánkban 3 Névtartományt vettünk fel. Magyarország az egyik, amelyhez a G19:G23-as cellák tartoznak, Románia a második, amihez az I19:I23-as cellák, és harmadik Szlovákia, amihez a H19:H23-as cellák. Ezt a három névtartományt ellenőrizheted, módosíthatód vagy törölheted a Képletek (Formulas) menü Névkezelő (Name Manager) parancsára kattintva.
INDIREKT függvény többszintű legördülő listához
A B19-es cellában pedig a következő adatérvényesítési szabály szerepel:
=INDIREKT($A$19)
Azaz az A19-es cellában kiválasztott ország értéke kerül az INDIREKT függvénybe, amely azt átalakítja cellahivatkozássá. Mivel az Excel táblánkban szerepelnek pontosan ezek a Nevek, mint cellahivatkozások, így a megfelelő cellatartomány értékeit fogjuk látni a legördülő listánkban is.
Ha tetszett, kérlek, oszd meg másokkal is!
Többszintű legördülő lista, ha változik a cella (VBA)
Ha a kitöltés után módosítod az országot, a kereskedő változatlan marad, akár más országhoz tartozó is lehet. Ezt egy rövid kóddal tudod orvosolni, melyről az Excel VBA – Reakció cella változására bejegyzésünkben írtunk bővebben.