Telefonszámunk: 1-472-0679

Kétszintű legördülő lista készítése

2015-02-23 - horvimi - Kategória: Általános tippek, Függvények, Táblázatok, adattáblák
Hivatkozott Excel verzio: Excel 2007 Excel 2010 Excel 2013

Az Excel adatérvényesítés lehetőségét egyre többen megismerik és használják. Ezek közül a leggyakoribb a legördülő lista szabály, amikor előírjuk, hogy a kiválasztott cellákba csak egy előre meghatározott lista elemeit lehessen beírni vagy egy legördülő menüből választani.

adat-ervenyesites-parancs

Ebben az anyagban feltételezem, hogy az olvasó ismeri ezt a lehetőséget, tehát egy ilyen lista alapú szabályt létre tud hozni.

Két szintű, függő lista

A kérdés az, hogy hogyan lehetne a lista két szintű függő lista? Ez azt jelenti, hogy két legördülő menü van, és a másodikban megjelenő elemek attól függenek, hogy az első menüben mit választottunk ki.

fuggo_lista_demo

 

A megoldás azon alapul, hogy a lista elemeinek a forrásaként nem csak hagyományos tartományi hivatkozást, hanem névtartományt is adhatunk.

A névtartomány azt jelenti, hogy egy olyan tartomány, amit elneveztünk, és ezután a nevével tudunk rá hivatkozni.

A megoldás

  1. Első lépésként létre kell hozni a listák forrásait. ezt egy külön munkalapon javasolnám.
    listaforrasok
  2. Második lépésként minden listát táblázattá alakítunk. A nevük lehet tetszőleges.
  3. Egyenként, a táblázatokban a tételeket, fejléc nélkül kijelöljük, és elnevezzük. Az elnevezéshez a Képletek szalag Névkezelő menüjét használjuk.
    • Az első lista neve tetszőleges, ezek tartalmazzák a fő kategória lehetséges értékeit. Én a példában „kateglista” nevet adtam.
    • Az egyik függő lista neve a hozzá tartozó fő kategória legyen (gyümölcs)
      fuggo-listaforras-elnevezese
    • A másik függő lista neve a másik kategória legyen (zöldség)
      fuggo-listaforras-elnevezese2
  4. Visszatérünk oda, ahol a szabályt létre akarjuk hozni, és beállítjuk a két szabályt.
    • Az első oszlopban a forrás a kategóriák tartománya.
      kategória-lista-forrás
    • A második oszlop forrása tartalmazza a trükköt.
      masodik-listaforras

Az INDIREKT függvény az argumentumában megkapott értéket szövegként kezeli, és cella vagy tartományi hivatkozást készít belőle. Tehát az INDIREKT(C5) azt jelenti, hogy a C5-ben, azaz a mellette lévő cellában található szöveg, mint hivatkozás. A kép szerint most ezt jelenti:

=Gyümölcs

Mivel mi készítettünk egy „Gyümölcs” nevű névtartományt, amiben a gyümölcsök listája van, így a második oszlop innen veszi a listát.

Ha az első oszlopban a „Zöldség” elemet választjuk, akkor a mellette lévő INDIREKT cella ezt értelmezi:

=Zöldség

És a „Zöldség” nevű névtartományból ajánl fel elemeket.

Ezt, és még néhány apróságot megnézheted a videóban

  • Kétszintű lista készítése

 Letölthető munkafüzet

Fuggo_lista

14 hozzászólás
  1. Üdv!
    A 2003-as változatban, nekem nem sikerült a listaforrást másik munkalapon létrehozni!
    Természetesen a 2010-es változatnál ez már lehetséges.
    Esetleg van-e mód arra, hogy ezt megoldjam a 2003-as változatban is?
    Jelenleg ugyanis a ComboBox-ot használok.
    Mivel csak bizonyos tételekhez tartozik második lista, ezért egy a kiválasztott adat változására induló makró jeleníti meg a második ComboBox-ot és frissíti a hozzá tartozó listát, amikor pedig nem kell akkor láthatatlanná is teszi.
    Esetleg lenne egyszerűbb megoldás is?
    Juzsi

  2. Szia!

    2003-nál úgy lehet a forrás másik munkalapon, hogy elnevezed a forrás tartományt.
    A szabály megadásnál pedig a névre hivatkozol. Pont úgy kell ezt csinálni, mint ahogyan ebben az anyagban fent le van írva.
    Az elnevezést 2003-ban a név mezőben tudod megcsinálni (Videóban van) vagy a beszúrás->Név->Név megadása menüben

    A speciális működés, ahogy leírod, makróval remekül megoldható.

    Ezzel a megoldással is lehet úgy, hogy azokhoz az első szintű tételekhez, amiknek nincs második szintű párja, egyszerűen nem csinálsz második szintű listát.

    Emiatt az Indirekt olyan névtartományt fog keresni, amilyen nem létezik.
    A Lista szabály létrehozáskor fogja látni, hogy probléma van, rákérdez, de simán leokézed, és menni fog.
    „A forrás kiértékelése jelenleg hibát okoz”

    Ez a makró nélküli megoldás.

    Imre

  3. Helló!
    Ha az alárendelt táblában (pl. gyümölcsök) nemcsak a név szerepel, hanem egységár is, akkor megoldható, hogy a legördülő listában csak a név jelenjen meg és ne mindkettő.
    Előre is köszönöm segítségét

  4. Ha jól értem egy cellában lenne a név és az ár. Sajnos ilyet nem lehet csinálni, tehát mindkettő benne lesz a legördülő listában.

    Amit szeretnél, megoldható ActiveX vezérlőkkel, eseménykezeléssel és makróval.

  5. Üdv!

    Nekem olyan kérdésem lenne hogy az megoldható-e, egy cellán belül egymásba ágyazva több különböző lista? erre vonatkozoan nem találtam semmit lehet hogy ezt nem lehet megcsinálni? remélem nem hülyeség amit kérdeztem a segítséget meg nagyon köszönöm meg a választ is.Tehát úgy képzeltem el hogy van a gyümölcs meg a zöldség agyümölcsön belül van az alma meg narancs stb. és az almán belül jonathán, meg starking és azon belül a kg stb

    ha esetleg makróval lehet meg oldani akkor arra kérnék választ hogyan lehet be ágyazni munkafüzetbe.
    köszönöm

  6. Ilyet egy legördülővel, egy cellán belül nem lehet csinálni.

  7. Szia!

    Nekem Excel 2013-ban nem F3 hatására nem ugrik fel a Névbeillesztése párbeszédpanel, nem tudok rájönni, hogy miért nem. Pedig pont úgy csináltam, mint a videón, egyenlőségjel után próbáltam megnyomni.

  8. Nekem ez sikerült, de az a gondom, hogy később, ugyanezen a munkalapon még hivatkoznák az INDIRCET-el arra a cellára, ahol a két kategória közül választottunk és akkor összebolondul, mert ugye ismét a kategória nevet kell adnom a tartománynak, dehát azt egyszer már használtam.
    A fenti példa esetén, létrhozok még két táblázatot Gyümölcs íze (édes, fanyar stb.) és Zöldség íze (csípős, édes stb.) és az Íz kiválasztása a két kategória (Gyümölcs, Zöldség) alapján történne ismét.
    Mi a megoldás ilyenkor?

  9. Szeretnék érdeklődni, hogy legördülő listát lehet e készíteni, hogy nem egymás mellett vannak? Gondolok itt, hogy a pl. C1-ben van név és hozzá tartózó adatok a D7 cellában jelenjenek meg?
    Segítséget köszönöm!

  10. Persze. Egyszerűen oda kell létrehozni a második szintű érvényesítéseket.

  11. Üdvözlöm!

    Mi a teendő, ha az első listában a nevek speciális karaktereket is tartalmaznak (szóköz, vessző, aposztróf, stb)? A Névkezelőben nem lehet ilyen nevet megadni, és így – mivel nem pontos az egyezés – nem is működik megfelelően a képlet.

    Előre is köszönöm!

Vélemény, hozzászólás?