Ynhâldsopjefte
In skoft lyn binne wy begûn mei it ferkennen fan de mooglikheden fan Excel Data Validation en learden hoe't jo in ienfâldige dellûklist yn Excel meitsje kinne op basis fan in komma-skieden list, berik fan sellen of in neamd berik.
Hjoed sille wy dizze funksje yngeand ûndersykje en learje hoe't jo cascadearjende dellûklisten meitsje kinne dy't karren werjaan ôfhinklik fan 'e wearde selekteare yn earste dropdown. Om it oars te sizzen, sille wy in Excel-gegevensvalidaasjelist meitsje op basis fan de wearde fan in oare list.
Hoe meitsje jo meardere ôfhinklike dropdown yn Excel
In multi-multy meitsje -nivo-ôfhinklike dellûklisten yn Excel is maklik. Alles wat jo nedich hawwe is in pear neamd berik en de INDIREKTE formule. Dizze metoade wurket mei alle ferzjes fan Excel 365 - 2010 en earder.
1. Typ de yngongen foar de dellûklisten
Typ earst de yngongen yn dy't jo yn de dellûklisten ferskine wolle, elke list yn in aparte kolom. Bygelyks, ik meitsje in fallende dropdown fan fruit-eksporteurs en kolom A fan myn boarneblêd ( Fruit ) befettet de items fan it earste dropdown en 3 oare kolommen listje de items foar de ôfhinklike dropdowns.
2. Meitsje beneamde berik
No moatte jo nammen meitsje foar jo haadlist en foar elk fan 'e ôfhinklike listen. Jo kinne dit dwaan troch in nije namme ta te foegjen yn it finster Name Manager ( Formules ljepper > Name Manager > Nij) of typ deteken) en absolute rige (mei $) ferwizings lykas = Blêd2!B$1.
As resultaat sil de ôfhinklike dellûklist fan B1 ferskine yn sel B2; C1's ôfhinklike dropdown sil werjaan yn C2, ensfh.
En as jo fan plan binne de dropdowns nei oare rijen te kopiearjen (d.w.s. kolom), brûk dan absolute kolom (mei $) en relative rige (sûnder $) koördinaten lykas = Blêd2!$B1.
Om in útklapsel te kopiearjen yn elke rjochting, brûk in relative referinsje (sûnder it $ teken) lykas = Sheet2!B1.
2.3. Meitsje in namme om de yngongen fan it ôfhinklike menu op te heljen
Ynstee fan unike nammen foar elk fan 'e ôfhinklike listen yn te stellen lykas wy diene yn it foarige foarbyld, sille wy ien neamd formule meitsje dy't wurdt net tawiisd oan in bepaalde sel of in berik fan sellen. It sil de juste list mei yngongen ophelje foar de twadde dropdown ôfhinklik fan hokker seleksje makke is yn 'e earste útklaplist. It wichtichste foardiel fan it brûken fan dizze formule is dat jo gjin nije nammen hoege te meitsjen as jo nije yngongen tafoegje oan de earste útklaplist - ien neamde formule beslacht se allegear.
Jo meitsje in nije Excel-namme mei dizze formule:
=INDEX(exporters_tbl,,MATCH(fruit,fruit_list,0))
Wêr:
-
exporters_tbl
- de namme fan 'e tabel (makke yn stap 1); -
fruit
- de namme fan 'e sel mei de earste útklaplist (makke yn stap 2.2); -
fruit_list
- de namme dy't ferwiist nei de koptekst fan 'e tabel (makke ynstap 2.1).
Ik joech it in namme exporters_list , lykas jo sjogge yn 'e skermprint hjirûnder.
Nou , do hast it grutste part fan it wurk al dien! Foardat jo nei de lêste stap komme, kin it in goed idee wêze om de Nammebehearder ( Ctrl + F3 ) te iepenjen en de nammen en referinsjes te ferifiearjen:
3. Excel Data Validation ynstelle
Dit is eins it maklikste diel. Mei de twa neamde formules yn plak, set jo Gegevensvalidaasje op 'e gewoane manier yn ( Data tab > Datavalidaasje ).
- Foar de earste drop-down list, yn it Boarne fak, enter =fruit_list (de namme makke yn stap 2.1).
- Foar de ôfhinklike dellûklist, fier =exporters_list (de namme makke yn stap 2.3).
Klear! Jo dynamysk cascadearjende útklapmenu is foltôge en sil automatysk bywurkje mei de wizigingen dy't jo makke hawwe oan 'e boarnetabel.
Dizze dynamyske Excel-útklapmenu, perfekt yn alle oare opsichten , hat ien tekoart - as de kolommen fan jo boarnetabel in oar oantal items befetsje, sille de lege rigen yn jo menu ferskine as dit:
Lege rigen útslute fan de dynamic cascading dropdown
As jo lege rigels yn jo dellûkfakjes skjinmeitsje wolle, moatte jo in stap fierder nimme en de INDEX / MATCH-formule ferbetterje dy't brûkt wurdt om de ôfhinklike dynamyske útklaplist te meitsjen.
It idee is om te brûken2 INDEX-funksjes, wêrby't de earste de sel boppe-lofts krijt en de twadde de sel rjochts ûnder fan it berik werom jout, as de OFFSET-funksje mei geneste INDEX en COUNTA. De detaillearre stappen folgje hjirûnder:
1. Meitsje twa ekstra nammen
Om de formule net te grut te meitsjen, meitsje earst in pear helpernammen mei de folgjende ienfâldige formules:
- In namme mei de namme col_num om it selektearre kolomnûmer te ferwizen:
=MATCH(fruit,fruit_list,0)
- In namme mei de namme entire_col om de selektearre kolom te ferwizen (net it nûmer fan 'e kolom, mar de hiele kolom):
=INDEX(exporters_tbl,,col_num)
Yn 'e boppesteande formules is exporters_tbl
de namme fan jo boarnetabel, fruit
is de namme fan 'e sel dy't de earste dropdown befettet, en fruit_list
is de namme dy't ferwiist nei de koptekstrige fan 'e tabel.
2. Meitsje de neamde referinsje foar it ôfhinklike dropdown
Brûk dan ien fan 'e ûndersteande formules om in nije namme te meitsjen (litte wy it neame exporters_list2 ) om te brûken mei de ôfhinklike dellûklist:
=INDEX(exporters_tbl,1,col_num) : INDEX(exporters_tbl, COUNTA(entire_col), col_num)
=OFFSET(INDEX(exporters_tbl,1,col_num),0,0,COUNTA(entire_col))
3. Gegevensvalidaasje tapasse
Selektearje as lêste de sel mei de ôfhinklike dropdown en tapasse Gegevensvalidaasje troch = exporters_list2 yn te fieren (de namme makke yn 'e foarige stap) yn 'e Boarne doaze.
De skermôfbylding hjirûnder lit it resultearjende dynamyske útklapmenu yn Excel sjen wêr't alle lege rigels fuort binne!
Opmerking. As jo wurkje mei dynamyske cascadearjende dellûklistenmakke mei de boppesteande formules, neat foarkomt de brûker fan it feroarjen fan de wearde yn it earste dropdown nei it meitsjen fan de seleksje yn it twadde menu, as gefolch kinne de karren yn 'e primêre en sekundêre dropdowns miskien net oerienkomme. Jo kinne wizigingen yn it earste fak blokkearje nei't in seleksje makke is yn 'e twadde troch VBA of komplekse formules te brûken dy't yn dizze tutorial foarsteld binne.
Dit is hoe't jo in Excel-gegevensvalidaasjelist meitsje op basis fan de wearden fan in oare list. Fiel jo frij om ús foarbyldwurkboeken te downloaden om de cascadearjende dellûklisten yn aksje te sjen. Tankewol foar it lêzen!
Oefeningswurkboek foar download
Cascading Dropdown Sample 1- maklike ferzje
Cascading Dropdown Sample 2 - avansearre ferzje sûnder blanks
namme direkt yn it Nammefak.
Opmerking. Tink asjebleaft dat as jo earste rige in soarte fan kolomkop is lykas jo sjogge yn 'e skermprint hjirboppe, jo it net sille opnimme yn it neamde berik.
Foar de detaillearre stap-foar-stap ynstruksjes sjoch asjebleaft Hoe kinne jo in namme yn Excel definiearje.
Dingen om te ûnthâlden:
- De items om ferskine yn de earste dellûk list moat wêze ien-wurd yngongen, bgl. Aprikot , Mango , Sinaasappels . As jo items hawwe dy't besteane út twa, trije of mear wurden, sjoch asjebleaft hoe't jo in cascadearjende dropdown meitsje mei mearwurdyngongen.
- De nammen fan de ôfhinklike listen moatte krekt itselde wêze as de oerienkommende yngong yn 'e haadyngong. list. Bygelyks, de ôfhinklike list dy't werjûn wurde moat as " Mango " selektearre is út de earste dellûklist moat Mango wurde neamd.
As klear , kinne jo op Ctrl+F3 drukke om it finster Name Manager te iepenjen en te kontrolearjen oft alle listen juste nammen en referinsjes hawwe.
3 . Meitsje de earste (haad) dellûklist
- Selektearje yn itselde of yn in oar rekkenblêd in sel of meardere sellen wêryn jo wolle dat jo primêre útklaplist ferskynt.
- Gean nei it ljepblêd Data , klik op Datavalidaasje en set in dellûklist op basearre op in neamd berik op de gewoane manier troch List te selektearjen ûnder Tastean en it ynfieren fan de berik namme yn de Boarne fak.
Foar de detaillearre stappen, sjoch asjebleaft In útklaplist meitsje basearre op in neamd berik.
As resultaat sille jo in útklapmenu yn jo wurkblêd hawwe lykas dit:
4. Meitsje de ôfhinklike dellûklist
Selektearje in sel(en) foar jo ôfhinklike dellûkmenu en tapasse Excel Data Validation opnij lykas beskreaun yn 'e foarige stap. Mar dizze kear, ynstee fan de namme fan it berik, fiere jo de folgjende formule yn yn it fjild Boarne :
=INDIRECT(A2)
Wêr't A2 de sel is mei jo earste (primêr) drop-down list.
As sel A2 op it stuit leech is, krije jo it flaterberjocht " De boarne evaluearret op it stuit op in flater. Wolle jo trochgean ? "
Klik feilich op Ja , en sa gau as jo in item selektearje út it earste útklapmenu, sille jo de yngongen sjen dy't dêrmei oerienkomme yn it twadde, ôfhinklike , drop-down list.
5. Foegje in tredde ôfhinklike dellûklist ta (opsjoneel)
As it nedich is, kinne jo in 3e cascadearjende dellûklist tafoegje dy't ôfhinklik is fan de seleksje yn it 2e útklapmenu of fan de seleksjes yn it earste twa dropdowns.
Trêde dellûkmenu ynstelle dy't ôfhinklik is fan 2e list
Jo kinne de dellûklist fan dit type op deselde wize meitsje as wy krekt in twadde ôfhinklike drop-down makke hawwe. del menu. Unthâld gewoan de 2 wichtige dingen dy't hjirboppe besprutsen binne, wêrfoar essensjeel binneit juste wurk fan jo cascadearjende útklaplisten.
As jo bygelyks in list mei regio's yn kolom C werjaan wolle, ôfhinklik fan hokker lân selektearre is yn kolom B, meitsje jo in list mei regio's foar elk lân en neam it nei de namme fan it lân, krekt sa't it lân ferskynt yn twadde dropdown-listen. Bygelyks, in list mei Yndiaanske regio's moat de namme "Yndia" wurde, in list mei Sineeske regio's - "Sina", ensafuorthinne.
Dêrnei selektearje jo in sel foar it 3e útklapmenu (C2 yn ús case) en tapasse Excel Data Validation mei de folgjende formule (B2 is de sel mei it twadde dellûkmenu dat in list mei lannen befettet):
=INDIRECT(B2)
No, elke kear as jo Yndia selektearje ûnder de list mei lannen yn kolom B, sille jo de folgjende karren hawwe yn it tredde útklapmenu:
Opmerking. De werjûn list mei regio's is unyk foar elk lân, mar it is net ôfhinklik fan de seleksje yn de earste útklaplist.
Meitsje in tredde dropdown ôfhinklik fan de earste twa listen
As jo in cascadearjende dellûkmenu moatte oanmeitsje dy't ôfhinklik is fan de seleksjes sawol yn 'e earste as twadde drop-down list, gean dan op dizze manier troch :
- Meitsje ekstra sets fan neamde berik, en neam se foar de wurdkombinaasjes yn jo earste twa dropdowns. Jo hawwe bygelyks Mango, Oranges, ensfh. yn 'e 1e list en Yndia, Brazylje, ensfh. yn 'e 2e.Dan meitsje jo beneamde berik MangoIndia , MangoBrazil , OrangesIndia , OrangesBrazil , ensfh. Dizze nammen moatte gjin ûnderstreken of oare ekstra tekens befetsje. .
=INDIRECT(SUBSTITUTE(A2&B2," ",""))
Dêr't A2 en B2 respektivelik de earste en twadde dropdowns befetsje.
As resultaat, jo 3e drop -down list sil de regio's sjen litte dy't oerienkomme mei de Fruit en Lân selekteare yn de earste 2 dellûklisten.
Dit is de maklikste manier om cascadearjende dellûkfakjes yn Excel te meitsjen. Dizze metoade hat lykwols in oantal beheiningen.
Beheinings fan dizze oanpak:
- De items yn jo primêre útklaplist moatte ien wurd wêze ynstjoerings. Sjoch hoe't jo fallende dellûklisten meitsje mei yngongen mei meardere wurden.
- Dizze metoade sil net wurkje as de yngongen yn jo haadútklaplist tekens befetsje dy't net tastien binne yn beriknammen, lykas it koppelteken ( -), ampersand (&), ensfh. De oplossing is it meitsjen fan in dynamyske cascadearjende dropdown dy't dizze beheining net hat.
- Drop-down menu's dy't op dizze manier makke binne, wurde net automatysk bywurke, d.w.s. feroarje de neamde berik'referinsjes elke kear as jo items tafoegje of fuortsmite yn 'e boarnelisten. Om oer dizze beheining te kommen, probearje dan in dynamysk cascadearjende dellûklist te meitsjen.
Meitsje fallende dellûklisten mei mearwurdyngongen
De INDIREKTE formules dy't wy yn it foarbyld brûkten boppesteande kin allinnich omgean ien-wurd items. Bygelyks, de formule = INDIRECT (A2) ferwiist yndirekt sel A2 en toant it neamde berik krekt mei deselde namme as yn 'e ferwiisde sel. Spaasjes binne lykwols net tastien yn Excel-nammen, en dêrom wurket dizze formule net mei nammen mei meardere wurden.
De oplossing is om de funksje INDIRECT te brûken yn kombinaasje mei SUBSTITUTE lykas wy diene by it meitsjen fan in 3e dropdown.
Stel dat jo Watermeloen ûnder de produkten hawwe. Yn dit gefal neame jo in list mei wettermeloen-eksporteurs mei ien wurd sûnder spaasjes - Watermeloen .
Dan, foar it twadde dropdown-menu, tapasse Excel Data Validation mei de folgjende formule dy't de spaasjes út de namme yn sel A2:
=INDIRECT(SUBSTITUTE(A2," ",""))
Hoe kinne jo wizigingen yn 'e primêre útklaplist foarkomme
Stel jo it folgjende senario foar . Jo brûker hat de seleksjes makke yn alle útklaplisten, doe feroare se fan gedachten, gongen werom nei de earste list en keas in oar item. As gefolch binne de 1e en 2e seleksjes net oerienkomme. Om foar te kommen dat dit bart, wolle jo miskien alle wizigingen blokkearje yn 'e earste drop-dellist sa gau as der in seleksje makke is yn de twadde list.
Om dit te dwaan, brûk by it meitsjen fan it earste dellûkmenu in spesjale formule dy't kontrolearret oft der in yngong selektearre is yn it twadde dellûkmenu:
=IF(B2="", Fruit, INDIRECT("FakeList"))
Wêr't B2 de twadde dropdown befettet, " Fruit " is de namme fan 'e list dy't ferskynt yn it earste útklapmenu, en " FakeList " is elke falske namme dy't net bestiet.
No, as ien item selektearre is yn it 2e útklapmenu, sille gjin karren beskikber wêze as de brûker klikt op de pylk njonken de earste list.
Dynamyske cascadearjende dellûklisten meitsje yn Excel
It wichtichste foardiel fan in dynamyske Excel-ôfhinklike dellûklist is dat jo frij binne om bewurkje de boarne listen en jo dellûk fakjes wurde bywurke op 'e fly. Fansels freget it meitsjen fan dynamyske dropdowns wat mear tiid en kompleksere formules, mar ik leau dat dit in weardige ynvestearring is, om't ienris ynsteld binne, binne sokke útklapmenu's in wirklik wille om mei te wurkjen.
Lykas by hast alles yn Excel, kinne jo berikke itselde resultaat op ferskate manieren. Benammen kinne jo in dynamyske dropdown meitsje mei in kombinaasje fan OFFSET-, INDIRECT- en COUNTA-funksjes as in mear fersterke INDEX MATCH-formule. Dat lêste is myn foarkommende manier, om't it in protte foardielen biedt, wêrfan de meast essensjele binne:
- Jo moatte allinich 3 neamde berik oanmeitsje, nettsjinsteande hoein protte items binne der yn 'e haad- en ôfhinklike listen.
- Jo listen kinne items mei meardere wurden en alle spesjale tekens befetsje.
- It oantal ynstjoerings kin ferskille yn elke kolom.
- De sortearfolchoarder fan de ynstjoerings makket neat út.
- Uteinlik is it hiel maklik om de boarnelisten te ûnderhâlden en te wizigjen.
Okee, genôch teory, lit ús oan 'e praktyk gean.
1. Organisearje jo boarnegegevens yn in tabel
Lykas gewoanlik is it earste ding dat jo dwaan moatte alle karren foar jo útklaplisten yn in wurkblêd opskriuwe. Dizze kear sille jo de boarnegegevens yn in Excel-tabel opslaan. Foar dit, as jo ienris de gegevens ynfierd hawwe, selektearje alle yngongen en druk op Ctrl + T of klik op Ynfoegje ljepper > Tabel . Typ dan in namme fan jo tabel yn it fak Tabelnamme .
De meast handige en fisuele oanpak is om de items foar it earste útklapmenu op te slaan as tabelkoppen, en de items foar de ôfhinklike dropdown as tabelgegevens. De skermprint hjirûnder yllustrearret de struktuer fan myn tabel, neamd exporters_tbl - de fruitnammen binne tabelkoppen en in list mei eksportearjende lannen wurdt tafoege ûnder de korrespondearjende fruitnamme.
2. Meitsje Excel-nammen
No't jo boarnegegevens klear binne, is it tiid om neamde referinsjes op te stellen dy't dynamysk de juste list fan jo tabel ophelje.
2.1. Foegje in namme ta foar de koptekstrige fan 'e tabel (haadútklapmenu)
Om innije namme dy't ferwiist nei de tabelkop, selektearje it en klik dan op Formules > Name Manager > Nij of druk op Ctrl + F3 .
Microsoft Excel sil it ynboude tabelreferinsjesysteem brûke om de namme te meitsjen fan it tabelnamme[#Headers] patroan.
Jou it wat betsjuttingsfolle en maklik te ûnthâlden namme, f.eks. fruit_list , en klik op OK .
2.2. Meitsje in namme foar de sel mei de earste útklaplist
Ik wit dat jo noch gjin útklapmenu hawwe :) Mar jo moatte de sel kieze om jo earste útklapmenu te hostjen en dêr in namme foar meitsje sel no om't jo dizze namme moatte opnimme yn 'e ferwizing fan' e tredde namme.
Bygelyks, myn earste drop-down-fak sit yn sel B1 op Blêd 2, dus ik meitsje der in namme foar, wat ienfâldich en sels ferklearjend lykas fruit :
Tip. Brûk passende selferwizings om útklaplisten te kopiearjen oer it wurkblêd.
Lês asjebleaft de folgjende pear alinea's foarsichtich, want dit is in tige nuttige tip dy't jo net wolle misse . Tige tank oan Karen foar it pleatsen fan it!
As jo fan plan binne jo dellûklisten nei oare sellen te kopiearjen, brûk dan mingde selferwizings by it meitsjen fan de namme foar de sel(sen) mei jo earste dropdown list.
Om de útklapmenu's korrekt te kopiearjen nei oare kolommen (dus nei rjochts), brûk de relative kolom (sûnder de $