Hoe maak je een afhankelijke (trapsgewijze) vervolgkeuzelijst in Excel?

  • Deel Dit
Michael Brown

Een tijdje geleden zijn we begonnen met het verkennen van de mogelijkheden van Excel-gegevensvalidatie en hebben we geleerd hoe we een eenvoudige vervolgkeuzelijst in Excel kunnen maken op basis van een door komma's gescheiden lijst, een cellenbereik of een genoemd bereik.

Vandaag gaan we deze functie diepgaand onderzoeken en leren we hoe we trapsgewijze vervolgkeuzelijsten kunnen maken die keuzes weergeven afhankelijk van de waarde die is geselecteerd in de eerste vervolgkeuzelijst. Anders gezegd, we maken een Excel-gegevensvalidatielijst op basis van de waarde van een andere lijst.

    Hoe meerdere afhankelijke vervolgkeuzes maken in Excel

    Een afhankelijke vervolgkeuzelijst met meerdere niveaus maken in Excel is eenvoudig. Alles wat u nodig hebt is een paar benoemde bereiken en de formule INDIRECT. Deze methode werkt met alle versies van Excel 365 - 2010 en eerder.

    1. Typ de gegevens voor de keuzelijsten

    Typ eerst de gegevens die u in de keuzelijsten wilt hebben, elke lijst in een aparte kolom. Ik maak bijvoorbeeld een cascade-keuzelijst van fruitexporteurs en kolom A van mijn bronblad ( Fruit ) bevat de items van de eerste dropdown en 3 andere kolommen bevatten de items voor de afhankelijke dropdowns.

    2. Maak naamreeksen

    Nu moet u namen maken voor uw hoofdlijst en voor elk van de afhankelijke lijsten. U kunt dit doen door een nieuwe naam toe te voegen in de Naam Manager venster ( Formules tab> Naam Manager> Nieuw) of de naam rechtstreeks in het Naam Box .

    Opmerking: als uw eerste rij een soort kolomkop is, zoals in de bovenstaande schermafbeelding, moet u deze niet opnemen in het genoemde bereik.

    Voor de gedetailleerde stapsgewijze instructies, zie Hoe een naam definiëren in Excel.

    Dingen om te onthouden:

    1. De items in de eerste keuzelijst moeten uit één woord bestaan, bijv. Abrikoos , Mango , Sinaasappels Als je items hebt die uit twee, drie of meer woorden bestaan, zie Hoe maak ik een cascade dropdown met items met meerdere woorden?
    2. De namen van de afhankelijke lijsten moeten precies dezelfde zijn als de overeenkomstige vermelding in de hoofdlijst. Bijvoorbeeld, de afhankelijke lijst die moet worden weergegeven wanneer " Mango " is geselecteerd in de eerste keuzelijst moet worden genoemd Mango .

    Als u klaar bent, kunt u op Ctrl+F3 drukken om de Naam Manager en controleer of alle lijsten correcte namen en referenties hebben.

    3. Maak de eerste (hoofd)keuzelijst

    1. Selecteer in dezelfde of een andere spreadsheet een cel of meerdere cellen waarin u uw primaire vervolgkeuzelijst wilt laten verschijnen.
    2. Ga naar de Gegevens tabblad, klik op Validatie van gegevens en een vervolgkeuzelijst maken op basis van een genoemd bereik op de gebruikelijke manier door te kiezen voor Lijst onder Sta toe. en het invoeren van de naam van het bereik in het Bron doos.

    Voor de gedetailleerde stappen, zie Een vervolgkeuzelijst maken op basis van een genoemd bereik.

    Het resultaat is een uitklapmenu in uw werkblad zoals dit:

    4. Maak de afhankelijke vervolgkeuzelijst

    Selecteer een of meer cellen voor uw afhankelijke keuzemenu en pas Excel Data Validation opnieuw toe zoals beschreven in de vorige stap. Maar deze keer voert u in plaats van de naam van het bereik de volgende formule in de Bron veld:

    =INDIRECT(A2)

    Waarbij A2 de cel is met uw eerste (primaire) keuzelijst.

    Als cel A2 momenteel leeg is, krijgt u de foutmelding " De Bron evalueert momenteel op een fout. Wilt u doorgaan? "

    Klik veilig Ja , en zodra u een item uit het eerste keuzemenu selecteert, ziet u de bijbehorende vermeldingen in de tweede, afhankelijke, keuzelijst.

    5. Voeg een derde afhankelijke vervolgkeuzelijst toe (optioneel)

    Indien nodig zou u een 3e cascade-keuzelijst kunnen toevoegen die afhankelijk is van de selectie in het 2e keuzemenu of van de selecties in de eerste twee keuzemenu's.

    3e dropdown instellen die afhankelijk is van 2e lijst

    U kunt de vervolgkeuzelijst van dit type op dezelfde manier maken als we zojuist een tweede afhankelijk vervolgkeuzemenu hebben gemaakt. Denk alleen aan de 2 belangrijke zaken die hierboven zijn besproken en die essentieel zijn voor de juiste werking van uw cascaderende vervolgkeuzelijsten.

    Als u bijvoorbeeld een lijst met regio's in kolom C wilt weergeven, afhankelijk van welk land in kolom B is geselecteerd, maakt u voor elk land een lijst met regio's en geeft u deze de naam van het land, precies zoals het land in de tweede vervolgkeuzelijst verschijnt. Een lijst met Indiase regio's moet bijvoorbeeld "India" heten, een lijst met Chinese regio's - "China", enzovoort.

    Daarna selecteert u een cel voor de 3e dropdown (C2 in ons geval) en past u Excel Data Validation toe met de volgende formule (B2 is de cel met de tweede dropdown die een lijst met landen bevat):

    =INDIRECT(B2)

    Nu, elke keer dat u India onder de lijst van landen in kolom B krijgt u in het derde keuzemenu de volgende keuzes:

    Opmerking. De weergegeven lijst met regio's is uniek voor elk land, maar is niet afhankelijk van de selectie in de eerste keuzelijst.

    Maak een derde dropdown afhankelijk van de eerste twee lijsten

    Als u een cascaderend keuzemenu moet maken dat afhankelijk is van de selecties in zowel de eerste als de tweede keuzelijst, ga dan op deze manier te werk:

    1. Maak extra sets van benoemde bereiken, en noem ze voor de woordcombinaties in uw eerste twee dropdowns. U hebt bijvoorbeeld Mango, sinaasappels, enz. in de 1e lijst en India, Brazilië, enz. in de 2e. Dan maak je naamreeksen aan MangoIndia , MangoBrazilië , SinaasappelsIndia , SinaasappelsBrazilië Deze namen mogen geen underscores of andere extra tekens bevatten.

  • Pas Excel Data Validation toe met de INDIRECT SUBSTITUTE formule die de namen van de items in de eerste twee kolommen samenvoegt en de spaties uit de namen verwijdert. Bijvoorbeeld, in cel C2 zou de data validatie formule zijn:
  • =INDIRECT(SUBSTITUTE(A2&B2," ",""))

    Waarbij A2 en B2 respectievelijk de eerste en tweede dropdowns bevatten.

    Het resultaat is dat uw 3e keuzelijst de regio's weergeeft die overeenkomen met de Fruit en Land geselecteerd in de eerste 2 keuzelijsten.

    Dit is de eenvoudigste manier om trapsgewijze vervolgkeuzelijsten te maken in Excel. Deze methode heeft echter een aantal beperkingen.

    Beperkingen van deze aanpak:

    1. De items in uw primaire vervolgkeuzelijst moeten uit één woord bestaan. Zie hoe u trapsgewijze vervolgkeuzelijsten maakt met items met meerdere woorden.
    2. Deze methode werkt niet als de items in je hoofd dropdown lijst tekens bevatten die niet zijn toegestaan in bereiknamen, zoals het koppelteken (-), ampersand (&), etc. De oplossing is om een dynamische cascade dropdown te maken die deze beperking niet heeft.
    3. Dropdowns die op deze manier zijn gemaakt, worden niet automatisch bijgewerkt, d.w.z. u moet de referenties van de genoemde bereiken wijzigen telkens wanneer u items toevoegt of verwijdert in de bronlijsten. Om deze beperking te omzeilen, kunt u proberen een dynamische cascade dropdownlijst te maken.

    Maak trapsgewijze vervolgkeuzelijsten met meerdere woorden

    De INDIRECT-formules die we in het bovenstaande voorbeeld gebruikten, kunnen alleen items van één woord verwerken. Bijvoorbeeld, de formule =INDIRECT(A2) verwijst indirect naar cel A2 en geeft het genoemde bereik weer met precies dezelfde naam als in de cel waarnaar wordt verwezen. Spaties zijn echter niet toegestaan in Excel-namen, en daarom werkt deze formule niet met namen van meerdere woorden.

    De oplossing is het gebruik van de functie INDIRECT in combinatie met SUBSTITUTE zoals we deden bij het maken van een 3e dropdown.

    Stel dat je Watermeloen In dit geval noemt u een lijst van watermeloenexporteurs met één woord zonder spaties -... Watermeloen .

    Pas vervolgens voor de tweede dropdown Excel Data Validation toe met de volgende formule die de spaties verwijdert uit de naam in cel A2:

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

    Hoe wijzigingen in de primaire keuzelijst te voorkomen

    Stel u het volgende scenario voor: uw gebruiker heeft de selecties in alle vervolgkeuzelijsten gemaakt, maar verandert vervolgens van gedachten, gaat terug naar de eerste lijst en kiest een ander item. Het resultaat is dat de eerste en tweede selectie niet op elkaar aansluiten. Om dit te voorkomen, kunt u wijzigingen in de eerste vervolgkeuzelijst blokkeren zodra een selectie wordt gemaakt in de tweede lijst.

    Om dit te doen, gebruikt u bij het maken van de eerste dropdown een speciale formule die controleert of in het tweede dropdown menu een item is geselecteerd:

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

    Waarbij B2 de tweede dropdown bevat, " Fruit " is de naam van de lijst die in het eerste keuzemenu verschijnt, en " FakeList " is elke valse naam die niet bestaat.

    Als nu een item is geselecteerd in de 2e keuzelijst, zijn er geen keuzes beschikbaar wanneer de gebruiker op de pijl naast de eerste lijst klikt.

    Dynamische trapsgewijze keuzelijsten maken in Excel

    Het belangrijkste voordeel van een dynamische Excel-afhankelijke vervolgkeuzelijst is dat u vrij bent om de bronlijsten te bewerken en dat uw vervolgkeuzelijsten on the fly worden bijgewerkt. Natuurlijk vergt het maken van dynamische vervolgkeuzelijsten wat meer tijd en complexere formules, maar ik geloof dat dit een investering waard is, omdat dergelijke vervolgkeuzelijsten, eenmaal ingesteld, een waar genoegen zijn om mee te werken.

    Zoals met bijna alles in Excel, kunt u hetzelfde resultaat op verschillende manieren bereiken. U kunt met name een dynamische keuzelijst maken met behulp van een combinatie van OFFSET-, INDIRECT- en COUNTA-functies of een meer veerkrachtige INDEX MATCH-formule. Deze laatste manier heeft mijn voorkeur omdat zij talrijke voordelen biedt, waarvan de belangrijkste zijn:

    1. U moet slechts 3 genoemde bereiken maken, ongeacht het aantal items in de hoofdlijst en de afhankelijke lijst.
    2. Uw lijsten mogen meerdere woorden en speciale tekens bevatten.
    3. Het aantal vermeldingen in elke kolom kan variëren.
    4. De sorteervolgorde van de items doet er niet toe.
    5. Ten slotte is het zeer eenvoudig om de bronlijsten te onderhouden en te wijzigen.

    Oké, genoeg theorie, laten we naar de praktijk gaan.

    1. Organiseer uw brongegevens in een tabel

    Zoals gewoonlijk moet u eerst alle keuzes voor uw keuzelijsten opschrijven in een werkblad. Deze keer moet u de brongegevens opslaan in een Excel-tabel. Hiervoor selecteert u na het invoeren van de gegevens alle items en drukt u op Ctrl + T of klikt u op Plaats tab> Tabel Typ vervolgens een naam van uw tabel in het Naam van de tafel doos.

    De handigste en meest visuele aanpak is om de items voor het eerste dropdownmenu op te slaan als tabelkop, en de items voor het afhankelijke dropdownmenu als tabelgegevens. Het onderstaande screenshot illustreert de structuur van mijn tabel, genaamd exporteurs_tbl - de vruchtennamen zijn tabelkoppen en onder de desbetreffende vruchtennaam is een lijst van exporterende landen toegevoegd.

    2. Maak Excel-namen

    Nu uw brongegevens klaar zijn, is het tijd om named references in te stellen die dynamisch de juiste lijst uit uw tabel halen.

    2.1. Voeg een naam toe voor de kopregel van de tabel (hoofd dropdown)

    Om een nieuwe naam aan te maken die verwijst naar de tabelkop, selecteert u deze en klikt u op Formules > Naam Manager > Nieuw of druk op Ctrl + F3 .

    Microsoft Excel zal het ingebouwde verwijzingssysteem voor tabellen gebruiken om de naam van de table_name[#Headers] patroon.

    Geef het een betekenisvolle en gemakkelijk te onthouden naam, bijv. fruitlijst en klik OK .

    2.2. Maak een naam voor de cel met de eerste keuzelijst

    Ik weet dat je nog geen dropdown hebt :) Maar je moet nu de cel kiezen waarin je eerste dropdown komt te staan en een naam voor die cel maken, omdat je die naam moet opnemen in de verwijzing van de derde naam.

    Mijn eerste keuzelijst staat bijvoorbeeld in cel B1 op blad 2, dus maak ik er een naam voor, iets eenvoudigs en vanzelfsprekends als fruit :

    Tip. Gebruik de juiste celverwijzingen om keuzelijsten kopiëren over het werkblad.

    Lees de volgende paragrafen aandachtig door, want dit is een zeer nuttige tip die u niet wilt missen. Hartelijk dank aan Karen voor het plaatsen ervan!

    Als u van plan bent uw vervolgkeuzelijsten naar andere cellen te kopiëren, gebruik dan gemengde celverwijzingen bij het maken van de naam voor de cel(len) met uw eerste vervolgkeuzelijst.

    Om de drop-downs correct te kopiëren naar andere kolommen (dus naar rechts), gebruik relatieve kolom (zonder $-teken) en absolute rij (met $) verwijzingen zoals = Sheet2!B$1.

    Daardoor verschijnt de afhankelijke vervolgkeuzelijst van B1 in cel B2; de afhankelijke vervolgkeuzelijst van C1 verschijnt in C2, enzovoort.

    En als u van plan bent de dropdowns te kopiëren naar andere rijen (d.w.z. onderaan de kolom), gebruik dan absolute kolom (met $) en relatieve rij (zonder $) coördinaten zoals = Sheet2!$B1.

    Om een uitklapbare cel in elke richting te kopiëren, gebruikt u een relatieve verwijzing (zonder het $-teken) zoals = Sheet2!B1.

    2.3. Creëer een naam om de gegevens van het afhankelijke menu op te halen

    In plaats van unieke namen in te stellen voor elk van de afhankelijke lijsten, zoals we in het vorige voorbeeld deden, gaan we er één maken genoemde formule die niet is toegewezen aan een bepaalde cel of een celbereik. Hij zal de juiste lijst met items voor de tweede vervolgkeuzelijst ophalen, afhankelijk van de selectie die is gemaakt in de eerste vervolgkeuzelijst. Het belangrijkste voordeel van het gebruik van deze formule is dat u geen nieuwe namen hoeft te maken wanneer u nieuwe items toevoegt aan de eerste vervolgkeuzelijst - één formule met naam dekt ze allemaal.

    U maakt een nieuwe Excel-naam met deze formule:

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

    Waar:

    • exporteurs_tbl - de naam van de tabel (aangemaakt in stap 1);
    • fruit - de naam van de cel met de eerste keuzelijst (gemaakt in stap 2.2);
    • fruitlijst - de naam die verwijst naar de header-rij van de tabel (gemaakt in stap 2.1).

    Ik gaf het een naam exporteurs_lijst zoals u ziet in de onderstaande schermafbeelding.

    Nou, het grootste deel van het werk heeft u al gedaan! Voordat u naar de laatste stap gaat, is het misschien een goed idee om Name Manager ( Ctrl + F3 ) te openen en de namen en verwijzingen te controleren:

    3. Excel gegevensvalidatie instellen

    Dit is eigenlijk het gemakkelijkste deel. Met de twee genoemde formules op hun plaats, stelt u de gegevensvalidatie in op de gebruikelijke manier ( Gegevens tab> Validatie van gegevens ).

    • Voor de eerste keuzelijst, in het vak Bron, voert u in =fruit_list (de in stap 2.1 aangemaakte naam).
    • Voor de afhankelijke keuzelijst voert u in =exporters_list (de in stap 2.3 aangemaakte naam).

    Uw dynamische cascade keuzemenu is klaar en wordt automatisch bijgewerkt met de wijzigingen die u in de brontabel hebt aangebracht.

    Deze dynamische Excel dropdown, perfect in alle andere opzichten, heeft één tekortkoming - indien de kolommen van uw brontabel een verschillend aantal items bevatten, verschijnen de lege rijen in uw menu zoals dit:

    Blanco rijen uitsluiten van de dynamische cascade dropdown

    Als u alle lege regels in uw vervolgkeuzelijsten wilt opschonen, moet u een stap verder gaan en de INDEX / MATCH-formule verbeteren die wordt gebruikt om de afhankelijke dynamische vervolgkeuzelijst te maken.

    Het idee is om 2 INDEX-functies te gebruiken, waarbij de eerste de cel linksboven krijgt en de tweede de cel rechtsonder van het bereik, of de functie OFFSET met geneste INDEX en COUNTA. De gedetailleerde stappen volgen hieronder:

    1. Maak twee extra namen aan

    Om de formule niet te omvangrijk te maken, maakt u eerst een paar helpernamen met de volgende eenvoudige formules:

    • Een naam genaamd col_num om naar het geselecteerde kolomnummer te verwijzen:

      =MATCH(fruit,fruit_list,0)

    • Een naam genaamd gehele_col om te verwijzen naar de geselecteerde kolom (niet het nummer van de kolom, maar de hele kolom):

      =INDEX(exporteurs_tbl,,col_num)

    In de bovenstaande formules, exporteurs_tbl is de naam van uw brontabel, fruit is de naam van de cel met de eerste dropdown, en fruitlijst is de naam die verwijst naar de kopregel van de tabel.

    2. Maak de naamsverwijzing voor de afhankelijke keuzelijst

    Gebruik vervolgens een van de onderstaande formules om een nieuwe naam te creëren (laten we het noemen exporteurs_lijst2 ) te gebruiken met de afhankelijke keuzelijst:

    =INDEX(exporteurs_tbl,1,col_num) : INDEX(exporteurs_tbl, COUNTA(gehele_col), col_num)

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

    3. Gegevensvalidatie toepassen

    Selecteer tenslotte de cel met de afhankelijke dropdown en pas gegevensvalidatie toe door in te voeren = exporteurs_lijst2 (de naam gemaakt in de vorige stap) in de Bron doos.

    De onderstaande schermafbeelding toont het resulterende dynamische keuzemenu in Excel waar alle lege regels zijn verdwenen!

    Opmerking. Wanneer u werkt met dynamische cascade dropdown-lijsten die met de bovenstaande formules zijn gemaakt, voorkomt niets dat de gebruiker de waarde in de eerste dropdown wijzigt nadat hij de selectie in het tweede menu heeft gemaakt, met als gevolg dat de keuzes in de primaire en secundaire dropdowns mogelijk niet overeenkomen. U kunt wijzigingen in de eerste box blokkeren nadat een selectie is gemaakt in de tweede door gebruik te maken van VBA ofcomplexe formules voorgesteld in deze handleiding.

    Zo maakt u een Excel-gegevensvalidatielijst op basis van de waarden van een andere lijst. Download gerust onze voorbeeldwerkmappen om de cascaderende vervolgkeuzelijsten in actie te zien. Bedankt voor het lezen!

    Praktijk werkboek om te downloaden

    Cascading Dropdown Voorbeeld 1- eenvoudige versie

    Cascading Dropdown Voorbeeld 2 - geavanceerde versie zonder spaties

    Michael Brown is een toegewijde technologieliefhebber met een passie voor het vereenvoudigen van complexe processen met behulp van softwaretools. Met meer dan tien jaar ervaring in de technische industrie heeft hij zijn vaardigheden in Microsoft Excel en Outlook, evenals Google Spreadsheets en Documenten aangescherpt. Michael's blog is gewijd aan het delen van zijn kennis en expertise met anderen, met eenvoudig te volgen tips en tutorials voor het verbeteren van de productiviteit en efficiëntie. Of je nu een doorgewinterde professional of een beginner bent, Michaels blog biedt waardevolle inzichten en praktisch advies om het meeste uit deze essentiële softwaretools te halen.