Met gegevensvalidatie kunnen keuzelijsten aan cellen worden toegevoegd. Hier zal worden uitgelegd hoe de keuzemogelijkheden van een keuzelijst afhankelijk gemaakt kunnen worden van de gekozen waarde in een andere keuzelijst. Dit wordt ook wel getrapte validatie genoemd. In onderstaand voorbeeld zijn in cellen A1 en B1 keuzelijsten opgenomen. De bedoeling is dat als in A1 voor jongen gekozen wordt, dat dan alleen jongensnamen (cellen D1:D4) zichtbaar zijn in keuzelijst B1 en bij de keuze voor meisje alleen meisjesnamen (cellen E1:E4).
Om dat te realiseren moet eerst aan cel A1 met gegevensvalidatie een keuzelijst worden toegevoegd met keuzemogelijkheden jongen en meisje:
De volgende stap is dat de bereiken D1:D4 en E1:E4 een naam moet worden gegeven. De namen moeten zijn 'jongen' en 'meisje'. Dit kan het eenvoudigst gedaan worden door eerst het bereik te selecteren en vervolgens in het naamvak de betreffende naam te typen:
De laatste stap is het toevoegen van de afhankelijke keuzelijst aan cel B1. Als bron voor deze lijst moet ingegeven worden: =INDIRECT(A1)
Hierna zullen in de keuzelijst van B1 alleen maar meisjesnamen verschijnen als in A1 meisje gekozen wordt en jongensnamen als in A1 jongen gekozen wordt. De keuzelijst van B1 is hierdoor afhankelijk gemaakt van de keuzelijst van A1.
Vragen / suggesties
Hopelijk heeft dit artikel geholpen om afhankelijke keuzelijsten in Excel te maken. Als er verdere vragen over dit onderwerp zijn of suggesties voor verbetering, plaats dan een reactie hieronder.
Ik heb een excel file waarin ik werk met een vervolgkeuzemenu
Het is me gelukt om een keuzemenu afhankelijk te maken van en antwoord in de 1e kolom , echter wil
Ik dat de 3e kolom ook een keuzemenu is die afhankelijk is van het antwoord in de 1e kollom echter met andere waardes dan de 2e
Hoe kan ik dit doen ?
Als formule voor de keuzelijst moet je dan de formule =INDIRECT(A1&"x") gebruiken.
Groet,
Sanne
Als dat per kolom zou willen tellen dan zou ik daarvoor de formule AANTAL.ALS gebruikten. Dus iets als: =AANTAL.ALS(A:A;"antwoord1")
Uiteraard kun je alle mogelijke antwoorden ook onder elkaar in een aparte kolom onder elkaar zetten (bijvoorbeeld in kolom B). De formule wordt dan: =AANTAL.ALS(A:A;B1)
Ik heb een bestand met 2 tabbladen. Op tabblad 1 heb ik 'ruimte' in cel A. In cel B de 'm2'.
Op blad 2 heb ik een listbox gemaakt van de info in cel A. (voorbeeld 'woonkamer', 'slaapkamer', 'kelder'). Kan ik in cel B op het tweede tabblad de M2 weergeven die een relatie hebben met de keuze die ik in de listbox gemaakt heb. Concreet als 'woonkamer' kies dat excel weergeeft op basis van info op blad 1 dat dit X m2 is. Hoop dat de vraagstelling duidelijk is. Gr. Paul
Als het goed is wordt dan de m2 getoond die bij de betreffende ruimte hoort.
Bijv: In kolom A is een keuzenlijst met Landen, in kolom B een keuzelijst met banen en dan een derde keuzelijst die afhankelijk is van de twee daarvoor. Dus bijvoorbeeld Belgie -- Politie -- Aantal werknemers
Het is zeker mogelijk om keuzelijsten te maken die afhankelijk zijn van 2 keuzelijsten. Ik begrijp alleen niet goed uit het voorbeeldje wat de afhankelijkheid precies moet zijn. Zoals ik het zie kies je een een land, vervolgens een baan en daarna geef je aantal werknemers in. Ik zie niet zo goed dat een keuzelijst afhankelijk is van een andere keuzelijst. Of begrijp ik dat verkeerd?
ik heb een dropdown met 3 items.
nu wil ik graag weten hoe vaak item 1 is gekozen en hoevaak item 2 en item 3.
Welke formule kan ik hiervoor gebruiken?
alvast bedankt
Ik begrijp nog niet helemaal precies wat je bedoelt. Komt deze dropdown meerdere keren voor in het bestand of wil je tellen hoe vaak een waarde gekozen wordt in 1 dropdown?
Is het mogelijk om een drop/down menu te maken om hierin een aantal te kiezen en daar verderop in het bestand de aantal regels van af te laten hangen?
Dus bijvoorbeeld: in een drop down menu kiezen hoeveel woningen er worden ontwikkeld, verderop in het bestand bij het kopje opbrengsten wordt het aantal regels gelijk gemaakt aan het aantal gekozen woningen in het drop down menu.
Het zou bijvoorbeeld met formules kunnen. Je kunt met een formule de gegevens in een cel zichtbaar of onzichtbaar maken. Dus iets als =ALS(dropdown<10;"tekst zichtbaar";"")
Als het om erg veel cellen gaat dan is het denk ik handiger om met een macro regels te verbergen op basis van de gekozen waarde.
Als A1 is blanco dan B1 is blanco.
Als A1 is niet blanco dan keuze in B1 uit een aantal mogelijkheden (aanwezig, ziek, verlof...)
Zet in D1 t/m D3 de waarden van de keuzelijst (aanwezig, ziek, verlof)
Maak een benoemd bereik aan met de naam keuzelijst en gebruik daarbij de formule:
=VERSCHUIVING(Blad1!$D$1:$D$3;;;3;AANTALARG(Blad1!$A$1))
Voeg tenslotte in B1 gegevensvalidatie toe met als bron: =keuzelijst
Hierdoor verschijnen de keuzes uit de keuzelijst alleen als A1 is gevuld.
Dus:
In kolom A kiest men voor een categorie
In kolom B kiest men voor een hoofdgroep
In kolom C kiest men voor een subgroep
Kolom A en B krijg ik voor elkaar maar kolom C blijft leeg.
Enig idee?
Bedankt
Kan je op deze manier het ook breder trekken en baseren op hele regels?
Bij de keuze jonge/meisje zou je ook 'maakt niet uit'moeten kunnen plaatsen, waarbij dus alle namen te zien zijn. Hoe kan ik dat maken?
Grt. Vincent
Ik weet niet precies wat je bedoelt met 'baseren op hele regels'.
Maar als je bij de keuze 'maakt niet uit' alles wilt zien, dan kun je gebruik maken van de hierboven beschreven techniek. Je moet dan de meisjesnamen en jongensnamen onder elkaar zetten en deze een eigen naam geven. Daarnaast moet je alle namen dan ook een naam geven.
Als er spaties in de keuzes staan, zoals alle namen, dan kun je dat in de bereiknaam vervangen door een underscore. Bij de INDIRECT-formule moet je deze spatie dan weer vervangen door een spaties met de functie SUBSTITUEREN.
Is het ook mogelijk om een afhankelijke keuzelijst te maken met drie waarden?
Bijvoorbeeld in rij A komt koptekst Wachtlijst status met keuze mogelijkheden (1. Urgent plaatsen;2. Actief plaatsen;3. Wacht op voorkeur;4. Wacht uit voorzorg)
In rij B koptekst classificatie, waarbij alleen de antwoorden in het dropdown menu staan die matchen met de ingevulde waarde onder rijA..
En in Rij C koptekst Streeftijd, waarbij de keuzes in tijd zijn aan te geven passend bij wat ingevuld is in Rij B
Ik had volgende formule al online gevonden en aangepast naar mijn tabel/waarden, maar hij is niet goed:
=VERSCHUIVING(DataWLstatus[[#Kopteksten];[Wlstatus]];VERGELIJKEN(DataInput[@[WL status]];DataWLstatus[@[Wlstat us]];[0]);0;AANTAL.ALS(DataWLs tatus[@[Wlstatus];DataInput[@[ WL status]]);1)
Mvg,
Michelle
Waarom jouw formule met verschuiving niet goed werkt kan ik, zonder het bestand te zien, zo niet beoordelen.
Er zijn echter meerdere methodes om afhankelijke keuzelijsten in te stellen. Als ik jouw wensen goed begrijp, dan zou de methode die in bovenstaand artikel beschreven wordt ook goed moeten werken. Je moet dan voor alle keuzes een benoemd bereik aanmaken met de naam van de betreffende keuze. Omdat jouw keuzes spaties bevatten moet je deze vervangen door een underscore. De formule voor de afhankelijke keuzelijst moet dan worden:
=INDIRECT(SUBSTITUEREN(A1;" ";"_"))
Dank voor deze formule, dit heeft mijn probleem deels opgelost.
Ik loop nu tegen het volgende aan: de gegevensvalidatie heeft een beperkte capaciteit. Er zijn 35 hoofdcategorien en het lijkt een maximum capaciteit te hebben van 14. Is er een manier om dit op te lossen?
De gegevensvalidatie heeft geen maximum capaciteit van 14. De maximum capaciteit is vele malen hoger (meer dan 30.000 items). Dus wat de oorzaak is kan ik niet beoordelen, maar het heeft zeker niet te maken met het bereiken van het maximum aantal items van de gegevensvalidatie dropdown.
Is het mogelijk om een keuzelijst te maken, waarbij de keuzelijst steeds wordt inkort aan de hand van een eerder gegeven antwoorden?
De keuzelijst wil ik gebruiken voor het spel 'Ranking the Stars'. Bij dit spel moeten 18 collega's hun andere collega's rangschikken van 1 t/m 18. Als iemand op plaats 1 bijvoorbeeld 'Mark' kiest, dan kan 'Mark' dus niet meer gekozen worden op plek 2 t/m 17. Ik zou dan ook willen dat de vervolgkeuzelijst bestaat uit de overgebleven 17 collega's. Als iemand vervolgens op plaats 2 'Sascha' kiest, dan kunnen 'Mark' en 'Sascha' dus niet meer gekozen worden op plek 3 t/m 17. De vervolgkeuzelijst bestaat dan nog maar uit 16 collega's etc. etc.
Is dit mogelijk door gebruik te maken van een aangepast vervolgkeuzelijst? Ik ben reuze benieuwd. Alvast bedankt. :)
Stap 1
Zet de 18 namen in A1:A18
Stap 2
Zet in cel B1 de volgende matrxiformule (afsluiten met Ctrl+Shift+Enter):
=ALS.FOUT(INDEX(A$1:A$18;KLEINSTE(ALS(ISNB(VERGELIJKEN(A$1:A$18;C$1:C$18;0));RIJ(A$1:A$18));RIJ(A1)));"")
en kopieer deze formule naar beneden t/m B18.
Stap 3
Maak een benoemd bereik aan en geef deze de naam RankingNamen en zet bij verwijst naar de volgende formule:
=VERSCHUIVING(Blad1!$B$1;;;18-AANTAL.LEGE.CELLEN(Blad1!$B$1:$B$18))
Stap 4
Voeg gegevensvalidatie toe aan C1 en zet bij bron: =RankingNamen en kopieer vervolgens C1 naar C2 t/m C18.
Kolom B is in dit geval een hulpkolom en die kan zo nodig verborgen worden.
Super interessant en het werkt heel goed!
Nu heb ik alleen een kleine uitbereiding hierop nodig..
Ik zou graag twee verschillende cellen in dezelfde rij afhankelijk willen maken van één en dezelfde cel in die rij.
Dus: ik wil als eerst mijn product kiezen uit een drop down, en afhankelijk van deze keuze wil ik een 'afhankelijke' dropdown creëren bij leveranciers (dus alleen de leveranciers in beeld die dat product leveren) en bij verpakkingseenheid (alleen de verpakkingseenheid waarin het product ingekocht kan worden).
Nu heb ik alle stappen doorlopen. Ik heb de producten gegroepeerd, ik heb de verpakkingseenheid voor elk product gegroepeerd, en ik heb de leveranciers voor elk product gegroepeerd (op een andere regel; zelfde naam + _L).
Nu is het mij gelukt om de verpakkingseenheid afhankelijk te maken van het product. Het lukt me echter niet (niet de juiste formule bij gegevensvalidatie?) om de leverancier ook afhankelijk te maken van het product.
Heb jij misschien een idee hoe ik dit kan doen en wat ik wellicht fout doe?
Gebruik dan bij leveranciers de formule: INDIRECT(A1&"_L")
Het werkt.
Dus veld waar je jongen meisje selecteerd, blanko en vervolgens de afhankelijke dropdown ook leeg wordt?
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Range("B1").ClearContents
End If
End Sub
in dropdown #1
optie 1 -> ""
optie 2 -> meisje
optie 3 -> jongen
Bij optie 1 moet de afhankelijke dropdown leeg zijn.
Dit is waar ik vast loop:
Range("H6").ClearContents
^^ werkt perfekt voor Cell H6.
Nu probeer ik het zover te krijgen dat als cell F6 (de eerste dropdown) de rest van de regel ook blanco is:
Range("H6&H6&J6&L6&N6&P6&R6&T6").ClearContents
^^ dat werkt blijkbaar niet. Nu moet ik wel erbij zeggen dat het 3 azonderlijke afhankelijke dropdowns zijn.
de eerste geeft weer een hoofdgroep met afzonderlijk de items.
De tweede een locatie met locatie eisen.
De derde een veiligheidscode.
MvG.
Range("H6,J6,L6,N6,P6,R6,T6").ClearContents