Hogyan készítsünk függő (kaszkádos) legördülő listát az Excelben?

  • Ossza Meg Ezt
Michael Brown

Nemrég elkezdtük felfedezni az Excel adatérvényesítés képességeit, és megtanultuk, hogyan hozhatunk létre egy egyszerű legördülő listát az Excelben egy vesszővel elválasztott lista, cellatartomány vagy egy megnevezett tartomány alapján.

Ma ezt a funkciót fogjuk alaposan megvizsgálni, és megtanuljuk, hogyan hozhatunk létre olyan kaszkádos legördülő listákat, amelyek az első legördülő listában kiválasztott értéktől függően jelenítik meg a választási lehetőségeket. Másképp fogalmazva, egy Excel adatérvényesítési listát készítünk egy másik lista értéke alapján.

    Hogyan hozzon létre több függő legördülő listát az Excelben

    Többszintű függő legördülő listák készítése az Excelben egyszerű. Mindössze néhány megnevezett tartományra és az INDIRECT képletre van szüksége. Ez a módszer az Excel 365 - 2010 és korábbi - összes verziójával működik.

    1. Írja be a legördülő listák bejegyzéseit.

    Először is, írja be a legördülő listákban megjeleníteni kívánt bejegyzéseket, minden egyes listát külön oszlopban. Például, létrehozok egy kaszkádszerű legördülő listát a gyümölcs exportőrökről, és a forráslapom A oszlopában ( Gyümölcs ) tartalmazza az első legördülő lista elemeit, 3 másik oszlop pedig a függő legördülő listák elemeit.

    2. Nevezett tartományok létrehozása

    Most létre kell hoznia neveket a főlistához és az egyes függő listákhoz. Ezt megteheti úgy is, hogy új nevet ad hozzá a Név Menedzser ablak ( Képletek tab> Névkezelő> Új) vagy a név közvetlen beírásával a Név doboz .

    Megjegyzés: Kérjük, figyeljen arra, hogy ha az első sora egyfajta oszlopfejléc, mint a fenti képernyőképen látható, akkor azt ne vegye fel a megnevezett tartományba.

    A részletes, lépésről-lépésre történő útmutatásokat lásd: Hogyan definiáljunk nevet az Excelben.

    Amit nem szabad elfelejteni:

    1. Az első legördülő listában megjelenő elemeknek egyszavas bejegyzéseknek kell lenniük, pl. Sárgabarack , Mango , Narancsok Ha két, három vagy több szóból álló elemek vannak, lásd a Hogyan hozzunk létre több szóból álló legördülő legördülő listát?
    2. A függő listák nevének pontosan meg kell egyeznie a főlista megfelelő bejegyzésével. Például a megjelenítendő függő lista, ha " Mango " van kiválasztva az első legördülő listából, a következő nevet kell adni Mango .

    Ha végzett, nyomja meg a Ctrl+F3 billentyűkombinációt a Név Menedzser ablakban, és ellenőrizze, hogy minden listán helyes nevek és hivatkozások szerepelnek-e.

    3. Készítse el az első (fő) legördülő listát.

    1. Ugyanabban vagy egy másik táblázatkezelőben jelölje ki azt a cellát vagy több cellát, amelyben az elsődleges legördülő listát szeretné megjeleníteni.
    2. Menjen a Adatok fülre, kattintson a Adatérvényesítés és egy megnevezett tartományon alapuló legördülő listát állíthat be a szokásos módon, kiválasztva a Lista a címen Engedélyezze a és a tartomány nevének megadása a Forrás doboz.

    A részletes lépésekért lásd a Megnevezett tartományon alapuló legördülő lista készítése című részt.

    Ennek eredményeképpen a munkalapon egy ehhez hasonló legördülő menü jelenik meg:

    4. Hozza létre a függő legördülő listát

    Válasszon ki egy cellát (cellákat) a függő legördülő menüjéhez, és alkalmazza újra az Excel adatérvényesítést az előző lépésben leírtak szerint. De ezúttal a tartomány neve helyett a következő képletet adja meg a Forrás mező:

    =INDIRECT(A2)

    Ahol A2 az első (elsődleges) legördülő listát tartalmazó cella.

    Ha az A2 cella jelenleg üres, akkor a következő hibaüzenetet kapja: " A Forrás jelenleg hibát jelez. Szeretné folytatni? "

    Biztonságosan kattintson Igen , és amint kiválaszt egy elemet az első legördülő menüből, a második, függő legördülő listában megjelennek a hozzá tartozó bejegyzések.

    5. Adjon hozzá egy harmadik függő legördülő listát (opcionális)

    Ha szükséges, hozzáadhat egy 3., kaszkádos legördülő listát, amely vagy a 2. legördülő menü kiválasztásától, vagy az első két legördülő menü kiválasztásától függ.

    Állítsa be a 3. legördülő listát, amely a 2. listától függ

    Az ilyen típusú legördülő listát ugyanúgy készítheted el, mint ahogy az imént elkészítettük a második függő legördülő menüt. Csak ne feledd a fentebb tárgyalt 2 fontos dolgot, amelyek elengedhetetlenek a kaszkádos legördülő listák helyes működéséhez.

    Ha például a C oszlopban a régiók listáját szeretné megjeleníteni attól függően, hogy a B oszlopban melyik ország van kiválasztva, akkor hozzon létre egy listát az egyes országok régióiról, és nevezze el az ország neve után, pontosan úgy, ahogy az ország a második legördülő listákban megjelenik. Például az indiai régiók listáját "India", a kínai régiók listáját - "Kína", és így tovább.

    Ezután válasszon ki egy cellát a 3. legördülő menüponthoz (esetünkben C2), és alkalmazza az Excel adatérvényesítést a következő képlettel (B2 a második legördülő menüt tartalmazó cella, amely az országok listáját tartalmazza):

    =INDIRECT(B2)

    Mostantól minden alkalommal, amikor kiválasztja a India a B oszlopban található országok listája alatt a harmadik legördülő listában a következő lehetőségek közül választhat:

    Megjegyzés: A régiók megjelenő listája minden ország esetében egyedi, de nem függ az első legördülő listában tett választástól.

    Hozzon létre egy harmadik legördülő listát, amely az első két listától függ.

    Ha olyan kaszkádoló legördülő menüt kell létrehoznia, amely az első és a második legördülő listában lévő választásoktól függ, akkor így járjon el:

    1. Hozzon létre további névleges tartományokat, és nevezze el őket az első két legördülő menüben lévő szóösszetételeknek. Például, a következő állításai vannak Mangó, narancs stb. az 1. listában és India, Brazília stb. a 2. Ezután létrehozza a nevesített tartományokat. MangoIndia , MangoBrazil , NarancsokIndia , NarancsokBrazil stb. Ezek a nevek nem tartalmazhatnak aláhúzásokat vagy más kiegészítő karaktereket.

  • Alkalmazza az Excel adatérvényesítést az INDIRECT SUBSTITUTE formulával, amely összekapcsolja az első két oszlopban lévő bejegyzések neveit, és eltávolítja a szóközöket a nevekből. Például a C2 cellában az adatérvényesítési formula a következő lenne:
  • =INDIRECT(SUBSTITUTE(A2&B2," ",""))

    Ahol A2 és B2 tartalmazza az első és a második legördülő ablakot.

    Ennek eredményeképpen a 3. legördülő lista a következő régióknak megfelelő régiókat fogja megjeleníteni Gyümölcs és Ország az első két legördülő listában kiválasztott.

    Ez a legegyszerűbb módja a kaszkádos legördülő mezők létrehozásának az Excelben. Ennek a módszernek azonban számos korlátja van.

    A megközelítés korlátai:

    1. Az elsődleges legördülő lista elemeinek egyszavas bejegyzéseknek kell lenniük. Tekintse meg, hogyan hozhat létre többszavas bejegyzésekkel rendelkező kaszkádos legördülő listákat.
    2. Ez a módszer nem fog működni, ha a fő legördülő lista bejegyzései olyan karaktereket tartalmaznak, amelyek nem engedélyezettek a tartománynevekben, mint például a kötőjel (-), az erősítőjel (&) stb. A megoldás egy dinamikus, kaszkádos legördülő lista létrehozása, amely nem rendelkezik ezzel a korlátozással.
    3. Az így létrehozott legördülő menük nem frissülnek automatikusan, azaz minden alkalommal meg kell változtatnia a megnevezett tartományok hivatkozásait, amikor elemeket ad hozzá vagy távolít el a forráslistákból. Hogy túllépjen ezen a korlátozáson, próbáljon meg dinamikus, kaszkádos legördülő listát készíteni.

    Többszavas bejegyzésekkel rendelkező, kaszkádszerű legördülő listák létrehozása

    A fenti példában használt INDIRECT képletek csak egyszavas elemeket tudnak kezelni. Például a =INDIRECT(A2) képlet közvetett módon hivatkozik az A2 cellára, és a megnevezett tartományt pontosan azzal a névvel jeleníti meg, amely a hivatkozott cellában van. Az Excel nevekben azonban nem engedélyezettek a szóközök, ezért ez a képlet nem működik többszavas nevek esetén.

    A megoldás az INDIRECT függvény használata a SUBSTITUTE funkcióval kombinálva, ahogyan azt a 3. legördülő lista létrehozásakor tettük.

    Tegyük fel, hogy Vízi dinnye Ebben az esetben a vízdinnye exportőreinek listáját egy szóköz nélküli szóval nevezi meg - Görögdinnye .

    Ezután a második legördülő ablakhoz alkalmazza az Excel adatérvényesítést a következő képlettel, amely eltávolítja a szóközöket az A2 cellában lévő névből:

    =INDIRECT(SUBSTITUTE(A2," ",""))

    Hogyan lehet megakadályozni a változásokat az elsődleges legördülő listában?

    Képzelje el a következő forgatókönyvet: A felhasználó már minden legördülő listában kiválasztott valamit, majd meggondolta magát, visszament az első listához, és kiválasztott egy másik elemet. Ennek eredményeképpen az 1. és a 2. kiválasztás nem egyezik meg. Hogy ezt megakadályozza, érdemes blokkolni az első legördülő listában a változtatásokat, amint a második listában kiválasztást végez.

    Ehhez az első legördülő menü létrehozásakor használjon egy speciális képletet, amely ellenőrzi, hogy a második legördülő menüben van-e kiválasztott bejegyzés:

    =IF(B2="", Fruit, INDIRECT("FakeList"))

    Ahol a B2 tartalmazza a második legördülő ablakot, " Gyümölcs " az első legördülő menüben megjelenő lista neve, és " FakeList " bármilyen álnév, amely nem létezik.

    Ha a 2. legördülő listában bármely elem ki van választva, akkor nem lesz elérhető a választási lehetőség, amikor a felhasználó az első lista melletti nyílra kattint.

    Dinamikus, kaszkádos legördülő listák létrehozása Excelben

    A dinamikus Excel-függő legördülő lista fő előnye, hogy szabadon szerkesztheted a forráslistákat, és a legördülő mezők menet közben frissülnek. Természetesen a dinamikus legördülő menük létrehozása kicsit több időt és bonyolultabb képleteket igényel, de úgy gondolom, hogy ez egy megérte befektetés, mert ha egyszer beállítod, az ilyen legördülő menükkel igazi öröm dolgozni.

    Mint az Excelben szinte mindennel kapcsolatban, ugyanazt az eredményt többféleképpen is elérheti. Különösen dinamikus legördülő listát hozhat létre az OFFSET, INDIRECT és COUNTA függvények kombinációjával, vagy egy rugalmasabb INDEX MATCH képlettel. Ez utóbbi az általam preferált módszer, mert számos előnnyel jár, amelyek közül a legfontosabbak a következők:

    1. Csak 3 nevesített tartományt kell létrehoznia, függetlenül attól, hogy hány elem van a fő és a függő listában.
    2. A listák tartalmazhatnak többszavas elemeket és bármilyen speciális karaktert.
    3. A bejegyzések száma az egyes oszlopokban változhat.
    4. A bejegyzések sorrendje nem számít.
    5. Végül, a forráslisták karbantartása és módosítása nagyon egyszerű.

    Oké, elég az elméletből, térjünk át a gyakorlatra.

    1. Rendezze a forrásadatokat egy táblázatba

    Szokás szerint először is a legördülő listák összes választási lehetőségét írja le egy munkalapra. Ezúttal a forrásadatokat egy Excel-táblázatban kell tárolnia. Ehhez az adatok beírása után jelölje ki az összes bejegyzést, és nyomja meg a Ctrl + T billentyűkombinációt, vagy kattintson a következő gombra Beillesztés tab> Asztal Ezután írja be a táblázat nevét a Asztal neve doboz.

    A legkényelmesebb és leglátványosabb megközelítés az, ha az első legördülő lista elemeit táblázatfejlécként, a függő legördülő lista elemeit pedig táblázatadatként tároljuk. Az alábbi képernyőkép az én táblázatom szerkezetét szemlélteti, melynek neve exporters_tbl - a gyümölcsök neve a táblázat fejléceként szerepel, és a megfelelő gyümölcs neve alatt az exportáló országok listája szerepel.

    2. Excel nevek létrehozása

    Most, hogy a forrásadatok készen állnak, itt az ideje, hogy olyan névre szóló hivatkozásokat állítson be, amelyek dinamikusan lekérik a megfelelő listát a táblázatból.

    2.1. Adjon nevet a táblázat fejlécének (fő legördülő sor).

    A táblázat fejlécére utaló új név létrehozásához jelölje ki a táblázatot, majd kattintson a Képletek > Név Menedzser > Új vagy nyomja meg a Ctrl + F3 billentyűkombinációt.

    A Microsoft Excel a beépített táblázathivatkozási rendszert használja a táblázat nevének létrehozásához. table_name[#Headers] minta.

    Adj neki valami értelmes és könnyen megjegyezhető nevet, pl. fruit_list , és kattintson a OK .

    2.2. Hozzon létre egy nevet az első legördülő listát tartalmazó cellának.

    Tudom, hogy még nincs legördülő ablakod :) De ki kell választanod az első legördülő ablakodnak otthont adó cellát, és létre kell hoznod egy nevet ehhez a cellához, mert ezt a nevet bele kell foglalnod a harmadik név hivatkozásába.

    Például az első legördülő mezőm a 2. lap B1-es cellájában található, ezért létrehozok egy nevet, valami egyszerű és magától értetődő nevet, mint pl. gyümölcs :

    Tipp. Használjon megfelelő cellahivatkozásokat a legördülő listák másolása a munkalapon.

    Kérjük, olvassa el figyelmesen a következő néhány bekezdést, mert ez egy nagyon hasznos tipp, amit nem akar kihagyni. Köszönöm szépen Karennek, hogy elküldte!

    Ha a legördülő listákat más cellákba kívánja másolni, akkor az első legördülő listát tartalmazó cella(k) nevének létrehozásakor vegyes cellahivatkozásokat használjon.

    Ahhoz, hogy a legördülő ablakok helyesen másolódjanak át más oszlopok (azaz jobbra), használjon relatív oszlop- ($ jel nélkül) és abszolút sorhivatkozásokat ($-val), például = Sheet2!B$1.

    Ennek eredményeképpen a B1 függő legördülő listája a B2 cellában jelenik meg; a C1 függő legördülő listája a C2 cellában, és így tovább.

    És ha azt tervezi, hogy a legördülő menüpontokat másolja át más sorok (azaz az oszlopon lefelé), akkor használjunk abszolút oszlop ($-val) és relatív sor ($ nélkül) koordinátákat, például = Sheet2!$B1.

    Ha egy legördülő cellát bármilyen irányba másolna, használjon relatív hivatkozást ($ jel nélkül), például = Sheet2!B1.

    2.3. Hozzon létre egy nevet a függő menü bejegyzéseinek lekérdezéséhez

    Ahelyett, hogy egyedi neveket adnánk az egyes függő listáknak, mint az előző példában tettük, létrehozunk egyet megnevezett formula amely nincs hozzárendelve egyetlen konkrét cellához vagy cellatartományhoz sem. A második legördülő listában a megfelelő bejegyzések listáját fogja lekérdezni attól függően, hogy az első legördülő listában milyen választást tettünk. A képlet használatának fő előnye, hogy nem kell új neveket létrehoznia, amikor új bejegyzéseket ad hozzá az első legördülő listához - egy névvel ellátott képlet lefedi az összeset.

    Ezzel a képlettel új Excel nevet hoz létre:

    =INDEX(exporters_tbl,,MATCH(fruit,fruit_list,0))

    Hol:

    • exporters_tbl - a (1. lépésben létrehozott) táblázat neve;
    • gyümölcs - az első legördülő listát tartalmazó (a 2.2. lépésben létrehozott) cella neve;
    • fruit_list - a táblázat (2.1. lépésben létrehozott) fejléc sorára utaló név.

    Adtam neki egy nevet exporters_list , ahogy az alábbi képernyőképen látható.

    Nos, a munka nagy részét már elvégezte! Mielőtt az utolsó lépéshez érne, érdemes lehet megnyitni a Névkezelőt ( Ctrl + F3 ), és ellenőrizni a neveket és a hivatkozásokat:

    3. Excel-adatérvényesítés beállítása

    Ez tulajdonképpen a legegyszerűbb rész. Ha a két megnevezett képlet a helyén van, akkor a szokásos módon beállíthatja az Adatérvényesítést ( Adatok tab> Adatérvényesítés ).

    • Az első legördülő listában a Forrás mezőbe írja be a következőt =fruit_list (a 2.1. lépésben létrehozott név).
    • A függő legördülő listába írja be =exporters_list (a 2.3. lépésben létrehozott név).

    Kész! A dinamikus, kaszkádos legördülő menü elkészült, és automatikusan frissül, tükrözve a forrástáblán végzett változtatásokat.

    Ennek a dinamikus Excel legördülő menünek, amely minden más szempontból tökéletes, van egy hiányossága - ha a forrás táblázat oszlopai különböző számú elemet tartalmaznak, az üres sorok így jelennek meg a menüben:

    Az üres sorok kizárása a dinamikus kaszkádos legördülő listából

    Ha a legördülő mezőkben lévő üres sorokat meg akarja tisztítani, akkor egy lépéssel tovább kell lépnie, és javítania kell a függő dinamikus legördülő lista létrehozásához használt INDEX / MATCH képletet.

    Az ötlet az, hogy 2 INDEX függvényt használjunk, ahol az első a tartomány bal felső celláját kapja meg, a második pedig a tartomány jobb alsó celláját adja vissza, vagy az OFFSET függvényt a beágyazott INDEX és COUNTA függvénnyel. A részletes lépések az alábbiakban következnek:

    1. Hozzon létre két további nevet

    Hogy a képlet ne legyen túl terjedelmes, először hozzon létre néhány segédnevet a következő egyszerű képletekkel:

    • Egy név, amit úgy hívnak col_num a kiválasztott oszlopszámra való hivatkozáshoz:

      =MATCH(fruit,fruit_list,0)

    • Egy név, amit úgy hívnak entire_col a kiválasztott oszlopra való hivatkozáshoz (nem az oszlop számához, hanem az egész oszlophoz):

      =INDEX(exporters_tbl,,col_num)

    A fenti képletekben, exporters_tbl a forrás tábla neve, gyümölcs az első legördülő ablakot tartalmazó cella neve, és fruit_list a táblázat fejléc sorára utaló név.

    2. Hozzon létre névre szóló hivatkozást a függő legördülő menüponthoz

    Ezután használjuk az alábbi képletek valamelyikét egy új név létrehozásához (nevezzük el exporters_list2 ), amelyet a függő legördülő listával együtt kell használni:

    =INDEX(exporters_tbl,1,col_num) : INDEX(exporters_tbl, COUNTA(entire_col), col_num)

    =OFFSET(INDEX(exporters_tbl,1,col_num),0,0,0,COUNTA(entire_col))

    3. Alkalmazza az adatok érvényesítését

    Végül jelölje ki a függő legördülő listát tartalmazó cellát, és alkalmazza az adatérvényesítést a következő beírással: = exporters_list2 (az előző lépésben létrehozott név)a Forrás doboz.

    Az alábbi képernyőképen látható az Excel dinamikus legördülő menüje, ahol az összes üres sor eltűnt!

    Megjegyzés: Amikor a fenti képletekkel létrehozott dinamikus, kaszkádos legördülő listákkal dolgozunk, semmi sem akadályozza meg a felhasználót abban, hogy a második menüben történő kiválasztás után megváltoztassa az első legördülő listában lévő értéket, aminek következtében az elsődleges és a másodlagos legördülő listában lévő választások nem egyezhetnek meg. A VBA vagy a VBA segítségével blokkolhatjuk az első mezőben a másodikban történő kiválasztás után végrehajtott változásokat.összetett képleteket javasolt ebben a bemutatóban.

    Így hozhat létre egy Excel adatérvényesítő listát egy másik lista értékei alapján. Töltse le bátran minta munkafüzeteinket, hogy a kaszkádos legördülő listákat működés közben is láthassa. Köszönjük, hogy elolvasta!

    Gyakorlati munkafüzet letölthető

    Cascading Dropdown minta 1- egyszerű verzió

    Cascading Dropdown Sample 2 - haladó verzió üres részek nélkül

    Michael Brown elkötelezett technológiai rajongó, aki szenvedélyesen egyszerűsíti a bonyolult folyamatokat szoftvereszközök segítségével. A technológiai iparban szerzett több mint egy évtizedes tapasztalatával a Microsoft Excel és az Outlook, valamint a Google Táblázatok és a Dokumentumok területén fejlesztette tudását. Michael blogja célja, hogy megossza tudását és szakértelmét másokkal, könnyen követhető tippeket és oktatóanyagokat adva a termelékenység és a hatékonyság javításához. Akár tapasztalt szakember, akár kezdő, Michael blogja értékes betekintést és gyakorlati tanácsokat kínál, amelyek segítségével a legtöbbet hozhatja ki ezekből az alapvető szoftvereszközökből.