Kazalo
Pred časom smo začeli raziskovati možnosti preverjanja podatkov v Excelu in se naučili, kako ustvariti preprost spustni seznam v Excelu na podlagi seznama, ločenega z vejico, razpona celic ali poimenovanega razpona.
Danes bomo poglobljeno raziskali to funkcijo in se naučili, kako ustvariti kaskadne spustne sezname, ki prikazujejo izbire glede na vrednost, izbrano v prvem spustnem seznamu. Povedano drugače, naredili bomo Excelov seznam za preverjanje podatkov na podlagi vrednosti drugega seznama.
Kako ustvariti več odvisnih spustnih vrstic v Excelu
Izdelava večnivojskih odvisnih spustnih seznamov v Excelu je preprosta. Potrebujete le nekaj poimenovanih obsegov in formulo INDIRECT. Ta metoda deluje v vseh različicah programa Excel 365 - 2010 in prejšnjih.
1. Vnesite vnose za spustne sezname
Najprej vnesite vnose, ki jih želite prikazati na spustnih seznamih, vsak seznam v ločenem stolpcu. Na primer, ustvarjam kaskadni spustni seznam izvoznikov sadja in stolpec A izvornega lista ( Sadje ) vključuje elemente prve spustne vrstice, v 3 drugih stolpcih pa so navedeni elementi odvisnih spustnih vrstic.
2. Ustvarite poimenovana območja
Zdaj morate ustvariti imena za glavni seznam in za vse odvisne sezname. To lahko storite tako, da dodate novo ime v Ime Manager okno ( Formule zavihek> Ime Manager> Novo) ali vnesete ime neposredno v Polje za ime .
Opomba: Če je prva vrstica nekakšen naslov stolpca, kot je prikazano na zgornji sliki zaslona, je ne smete vključiti v poimenovano območje.
Za podrobna navodila po korakih glejte Kako določiti ime v Excelu.
Ne pozabite:
- Elementi, ki se prikažejo na prvem spustnem seznamu, morajo biti enobesedni, npr. Marelica , Mango , Pomaranče . Če imate elemente, sestavljene iz dveh, treh ali več besed, glejte Kako ustvariti kaskadno spustno okno z večbesednimi vnosi.
- Imena odvisnih seznamov morajo biti popolnoma enaka ustreznemu vnosu v glavnem seznamu. Na primer, odvisni seznam, ki se prikaže, ko " Mango ", ki je izbran s prvega spustnega seznama, se mora imenovati Mango .
Ko končate, lahko pritisnete kombinacijo tipk Ctrl+F3, da odprete Ime Manager in preverite, ali so na vseh seznamih pravilna imena in reference.
3. Ustvarite prvi (glavni) spustni seznam
- V isti ali drugi preglednici izberite celico ali več celic, v katerih želite prikazati primarni spustni seznam.
- Pojdite na Podatki kliknite zavihek Potrjevanje podatkov in nastavite spustni seznam na podlagi poimenovanega območja na običajen način, tako da izberete Seznam na spletnem mestu . Omogočite in vnesite ime območja v polje Vir: polje.
Za podrobne korake glejte Razvrstitev spustnega seznama na podlagi poimenovanega območja.
Tako boste v delovnem listu dobili spustni meni, podoben temu:
4. Ustvarite odvisni spustni seznam
Izberite celico(-e) za odvisni spustni meni in ponovno uporabite Excel Data Validation, kot je opisano v prejšnjem koraku. Toda tokrat namesto imena območja vnesite naslednjo formulo v polje Vir: področje:
=INDIRECT(A2)
kjer je A2 celica s prvim (primarnim) spustnim seznamom.
Če je celica A2 trenutno prazna, boste dobili sporočilo o napaki " Vir je trenutno ocenjen kot napaka. Ali želite nadaljevati? "
Varno kliknite Da in takoj ko izberete element iz prvega spustnega menija, se v drugem, odvisnem spustnem seznamu prikažejo ustrezni vnosi.
5. Dodajte tretji odvisni spustni seznam (neobvezno)
Po potrebi lahko dodate tretji kaskadni spustni seznam, ki je odvisen od izbire v drugem spustnem meniju ali od izbire v prvih dveh spustnih menijih.
Nastavitev 3. spustnega seznama, ki je odvisen od 2. seznama
Spustni seznam te vrste lahko izdelate na enak način, kot smo pravkar izdelali drugi odvisni spustni meni. Ne pozabite le na 2 pomembni stvari, o katerih smo govorili zgoraj in ki sta bistveni za pravilno delovanje vaših kaskadnih spustnih seznamov.
Če želite na primer v stolpcu C prikazati seznam regij glede na izbrano državo v stolpcu B, ustvarite seznam regij za vsako državo in ga poimenujte po imenu države, natančno tako, kot je država prikazana v drugem spustnem seznamu. Seznam indijskih regij se na primer imenuje "Indija", seznam kitajskih regij "Kitajska" in tako naprej.
Nato izberete celico za tretji spustni meni (C2 v našem primeru) in uporabite Excelovo preverjanje podatkov z naslednjo formulo (B2 je celica z drugim spustnim menijem, ki vsebuje seznam držav):
=INDIRECT(B2)
Zdaj lahko vsakič, ko izberete Indija pod seznamom držav v stolpcu B so v tretjem spustnem oknu na voljo naslednje možnosti:
Opomba: Prikazani seznam regij je za vsako državo edinstven, vendar ni odvisen od izbire v prvem spustnem seznamu.
Ustvarite tretji spustni seznam, ki je odvisen od prvih dveh seznamov
Če želite ustvariti kaskadni spustni meni, ki je odvisen od izbire v prvem in drugem spustnem seznamu, nadaljujte na ta način:
- Ustvarite dodatne sklope poimenovanih območij in jih poimenujte za besedne kombinacije v prvih dveh spustnih poljih. Mango, pomaranče itd. na prvem seznamu in Indija, Brazilija itd. v 2. Nato ustvarite poimenovana območja MangoIndia , MangoBrazil , PomarančeIndija , PomarančeBrazilska Ta imena ne smejo vsebovati podčrtajev ali drugih dodatnih znakov.
=INDIRECT(SUBSTITUTE(A2&B2," ",""))
Pri čemer A2 in B2 vsebujeta prvo oziroma drugo spustno okno.
Na tretjem spustnem seznamu bodo prikazane regije, ki ustrezajo Sadje in . Država izbrani na prvih dveh spustnih seznamih.
To je najlažji način ustvarjanja kaskadnih spustnih polj v Excelu. Vendar ima ta metoda številne omejitve.
Omejitve tega pristopa:
- Elementi na primarnem spustnem seznamu morajo biti enobesedni. Oglejte si, kako ustvariti kaskadne spustne sezname z večbesednimi vnosi.
- Ta metoda ne bo delovala, če vnosi v glavnem spustnem seznamu vsebujejo znake, ki niso dovoljeni v imenih območij, kot so vezaj (-), ampersand (&) itd. Rešitev je ustvarjanje dinamičnega kaskadnega spustnega seznama, ki nima te omejitve.
- Tako ustvarjeni spustni meniji se ne posodabljajo samodejno, kar pomeni, da boste morali spremeniti reference poimenovanih obsegov vsakič, ko boste dodali ali odstranili elemente v izvornih seznamih. Če želite odpraviti to omejitev, poskusite ustvariti dinamični kaskadni spustni seznam.
Ustvarjanje kaskadnih spustnih seznamov z večbesednimi vnosi
Formule INDIRECT, ki smo jih uporabili v zgornjem primeru, lahko obdelujejo le enobesedne elemente. Na primer formula =INDIRECT(A2) se posredno sklicuje na celico A2 in prikaže poimenovano območje s točno enakim imenom, kot je v referenčni celici. Vendar v Excelovih imenih niso dovoljeni presledki, zato ta formula ne deluje z večbesednimi imeni.
Rešitev je uporaba funkcije INDIRECT v kombinaciji s funkcijo SUBSTITUTE, kot smo to storili pri ustvarjanju tretjega spustnega okna.
Predpostavimo, da imate Vodna melona V tem primeru imenujete seznam izvoznikov vodne melone z eno besedo brez presledkov - Lubenica .
Nato za drugo spustno okno uporabite Excelovo preverjanje podatkov z naslednjo formulo, ki iz imena v celici A2 odstrani presledke:
=INDIREKTNO(SUBSTITUTE(A2," ",""))
Kako preprečiti spremembe v primarnem spustnem seznamu
Predstavljajte si naslednji scenarij: uporabnik je izbral vse spustne sezname, nato pa si je premislil, se vrnil na prvi seznam in izbral drug element. Zaradi tega sta prvi in drugi seznam neusklajena. Da bi to preprečili, boste morda želeli blokirati vse spremembe na prvem spustnem seznamu, takoj ko bo opravljena izbira na drugem seznamu.
Pri ustvarjanju prvega spustnega menija uporabite posebno formulo, ki preveri, ali je v drugem spustnem meniju izbran kateri koli vnos:
=IF(B2="", sadje, INDIRECT("FakeList"))
kjer B2 vsebuje drugo spustno okno, " Sadje " je ime seznama, ki se prikaže v prvem spustnem meniju, in " FakeList " je vsako lažno ime, ki ne obstaja.
Če je na drugem spustnem seznamu izbran kateri koli element, ne bo na voljo nobene izbire, ko uporabnik klikne na puščico ob prvem seznamu.
Ustvarjanje dinamičnih kaskadnih spustnih seznamov v Excelu
Glavna prednost dinamičnega spustnega seznama, odvisnega od programa Excel, je, da lahko prosto urejate izvorne sezname in da se bodo vaša spustna polja posodabljala sproti. Seveda ustvarjanje dinamičnih spustnih seznamov zahteva nekoliko več časa in bolj zapletene formule, vendar menim, da je to vredna naložba, saj je s takimi spustnimi meniji po vzpostavitvi pravi užitek delati.
Tako kot pri skoraj vseh opravilih v Excelu lahko enak rezultat dosežete na več načinov. Zlasti lahko ustvarite dinamično spustno okno s kombinacijo funkcij OFFSET, INDIRECT in COUNTA ali bolj odporno formulo INDEX MATCH. Slednji način imam najraje, saj zagotavlja številne prednosti, med katerimi so najpomembnejše naslednje:
- Ustvariti morate samo 3 poimenovane obsege, ne glede na to, koliko elementov je na glavnem in odvisnem seznamu.
- Vaši seznami lahko vsebujejo večbesedne elemente in posebne znake.
- Število vnosov v posameznem stolpcu je lahko različno.
- Vrstni red vnosov ni pomemben.
- Poleg tega je zelo enostavno vzdrževati in spreminjati sezname virov.
Dobro, dovolj je teorije, pojdimo v prakso.
1. Izvorne podatke uredite v preglednici
Kot običajno morate najprej v delovni list zapisati vse izbire za spustne sezname. Tokrat boste izvorne podatke shranili v Excelovo tabelo. Pri tem po vnosu podatkov izberite vse vnose in pritisnite kombinacijo tipk Ctrl + T ali kliknite Vstavite zavihek> Tabela . Nato vnesite ime svoje tabele v polje Ime mize škatla.
Najbolj priročen in vizualen pristop je, da elemente za prvi spustni niz shranimo kot glave tabele, elemente za odvisni spustni niz pa kot podatke tabele. Spodnja slika prikazuje strukturo moje tabele z imenom exporters_tbl - imena sadja so naslovi tabel, pod ustreznim imenom sadja pa je dodan seznam držav izvoznic.
2. Ustvarite imena v programu Excel
Zdaj, ko so izvorni podatki pripravljeni, je čas, da nastavite poimenovane reference, ki bodo iz tabele dinamično priklicale pravilen seznam.
2.1 Dodajte ime za vrstico glave tabele (glavna spustna vrstica)
Če želite ustvariti novo ime, ki se sklicuje na glavo tabele, jo izberite in nato kliknite Formule > Ime Manager > Novo ali pritisnite Ctrl + F3 .
Microsoft Excel bo uporabil vgrajeni referenčni sistem tabele za ustvarjanje imena ime tabele[#Headers] vzorec.
Dajte mu smiselno in lahko zapomnljivo ime, npr. fruit_list in kliknite V REDU .
2.2. Ustvarite ime za celico, ki vsebuje prvi spustni seznam
Vem, da še nimate nobene spustne vrstice :) Vendar morate izbrati celico, ki bo gostila vašo prvo spustno vrstico, in zdaj ustvariti ime za to celico, ker boste morali to ime vključiti v referenco tretjega imena.
Na primer, moje prvo spustno polje se nahaja v celici B1 na listu 2, zato zanj ustvarim ime, nekaj preprostega in razumljivega, kot je sadje :
Nasvet. Uporabite ustrezne sklice na celice, da kopiranje spustnih seznamov po celotnem delovnem listu.
Pozorno preberite naslednjih nekaj odstavkov, saj je to zelo koristen nasvet, ki ga ne želite zamuditi. Najlepša hvala Karen za objavo!
Če nameravate spustne sezname kopirati v druge celice, pri ustvarjanju imena za celico(-e) s prvim spustnim seznamom uporabite mešane reference celic.
Da se spustni seznami pravilno kopirajo v druge stolpci (tj. desno), uporabite relativne sklice na stolpce (brez znaka $) in absolutne sklice na vrstice (z $), kot je = Sheet2!B$1.
Tako se bo odvisni spustni seznam B1 prikazal v celici B2; odvisni spustni seznam C1 se bo prikazal v C2 in tako naprej.
In če nameravate spustne okence kopirati v druge vrstice (tj. navzdol po stolpcu), potem uporabite absolutne koordinate stolpca (z $) in relativne koordinate vrstice (brez $), kot je = Sheet2!$B1.
Če želite kopirati celico spustnega seznama v katero koli smer, uporabite relativni sklic (brez znaka $), kot je = List2!B1.
2.3. Ustvarite ime za pridobivanje vnosov odvisnega menija
Namesto da bi za vsak odvisni seznam določili edinstvena imena, kot smo to storili v prejšnjem primeru, bomo ustvarili enega poimenovana formula ki ni dodeljena nobeni določeni celici ali območju celic. Pridobi pravilen seznam vnosov za drugo spustno okno, odvisno od izbire na prvem spustnem seznamu. Glavna prednost uporabe te formule je, da vam ni treba ustvarjati novih imen, ko dodajate nove vnose na prvi spustni seznam - ena poimenovana formula zajema vse vnose.
S to formulo ustvarite novo ime programa Excel:
=INDEX(izvozniki_tbl,,MATCH(fruit,fruit_list,0))
Kje:
exporters_tbl
- ime tabele (ustvarjene v koraku 1);sadje
- ime celice, ki vsebuje prvi spustni seznam (ustvarjen v koraku 2.2);fruit_list
- ime, ki se nanaša na vrstico glave tabele (ustvarjeno v koraku 2.1).
Dal sem mu ime exporters_list kot je prikazano na spodnji sliki zaslona.
Večji del dela ste že opravili! Preden preidete na zadnji korak, je morda dobro, da odprete Upravitelja imen ( Ctrl + F3 ) ter preverite imena in reference:
3. Nastavitev potrjevanja podatkov v programu Excel
To je pravzaprav najlažji del. Ko sta formuli z imenoma pripravljeni, nastavite preverjanje podatkov na običajen način ( Podatki zavihek> Potrjevanje podatkov ).
- Na prvem spustnem seznamu v polje Vir vnesite = seznam sadja (ime, ustvarjeno v koraku 2.1).
- Za spustni seznam odvisnih vnesite =exporters_list (ime, ustvarjeno v koraku 2.3).
Dinamični kaskadni spustni meni je dokončan in se bo samodejno posodabljal glede na spremembe, ki ste jih vnesli v izvorno tabelo.
Ta dinamična spustna vrstica programa Excel, ki je v vseh drugih pogledih popolna, ima eno pomanjkljivost - če stolpci vaše izvorne tabele vsebujejo različno število elementov, se bodo v meniju pojavile prazne vrstice:
Izključitev praznih vrstic iz dinamične kaskadne spustne vrstice
Če želite odstraniti prazne vrstice v spustnih poljih, boste morali narediti korak naprej in izboljšati formulo INDEX / MATCH, ki se uporablja za ustvarjanje odvisnega dinamičnega spustnega seznama.
Ideja je, da uporabite 2 funkciji INDEX, pri čemer prva dobi zgornjo levo celico, druga pa vrne spodnjo desno celico območja, ali funkcijo OFFSET z vgnezdenima funkcijama INDEX in COUNTA. Podrobni koraki sledijo v nadaljevanju:
1. Ustvarite dve dodatni imeni
Da formula ne bi bila preveč obsežna, najprej ustvarite nekaj pomožnih imen z naslednjimi preprostimi formulami:
- Ime, ki se imenuje col_num za sklicevanje na izbrano številko stolpca:
=MATCH(fruit,fruit_list,0)
- Ime, ki se imenuje whole_col za sklicevanje na izbrani stolpec (ne na številko stolpca, temveč na celoten stolpec):
=INDEX(izvozniki_tbl,,col_num)
V zgornjih formulah, exporters_tbl
je ime vaše izvorne tabele, sadje
je ime celice, ki vsebuje prvo spustno okno, in fruit_list
je ime, ki se nanaša na vrstico glave tabele.
2. Ustvarite poimenovano referenco za odvisno spustno okno
Nato uporabite eno od spodnjih formul in ustvarite novo ime (imenujmo ga izvozniki_list2 ), ki se uporablja z odvisnim spustnim seznamom:
=INDEX(izvozniki_tbl,1,col_num) : INDEX(izvozniki_tbl, COUNTA(celotni_col), col_num)
=OFFSET(INDEX(exporters_tbl,1,col_num),0,0,COUNTA(entire_col))
3. Uporabite preverjanje podatkov
Na koncu izberite celico, ki vsebuje odvisno spustno okno, in uporabite preverjanje podatkov z vnosom = izvozniki_list2 (ime, ustvarjeno v prejšnjem koraku) v Vir: škatla.
Spodnja slika prikazuje dinamični spustni meni v Excelu, v katerem ni več praznih vrstic!
Opomba: Pri delu z dinamičnimi kaskadnimi spustnimi seznami, ustvarjenimi z zgornjimi formulami, uporabniku nič ne preprečuje, da bi po izbiri v drugem meniju spremenil vrednost v prvem spustnem meniju, zato se lahko izbire v primarnem in sekundarnem spustnem meniju ne ujemajo. Spremembe v prvem meniju po izbiri v drugem meniju lahko blokirate z uporabo VBA alizapletene formule, predlagane v tem učbeniku.
Tako ustvarite seznam za preverjanje podatkov v Excelu na podlagi vrednosti drugega seznama. Prenesite naše vzorčne delovne zvezke in si oglejte kaskadne spustne sezname v akciji. Hvala za branje!
Praktični delovni zvezek za prenos
Cascading Dropdown Sample 1- enostavna različica
Cascading Dropdown Sample 2 - napredna različica brez praznih mest