Kuidas teha Excelis sõltuvat (kaskaadset) ripploendistikku

  • Jaga Seda
Michael Brown

Mõni aeg tagasi hakkasime uurima Exceli andmete valideerimise võimalusi ja õppisime, kuidas luua Excelis lihtne rippmenüü, mis põhineb komadega eraldatud loetelul, lahtrite vahemikul või nimelisel vahemikul.

Täna uurime seda funktsiooni põhjalikult ja õpime, kuidas luua kaskaadseid ripploendeid, mis näitavad valikuid sõltuvalt esimeses ripploendis valitud väärtusest. Teisiti öeldes teeme Exceli andmete valideerimisloendi, mis põhineb teise loendi väärtusel.

    Kuidas luua Excelis mitu sõltuvat rippmenüüd

    Mitmetasandiliste sõltuvate ripploendite tegemine Excelis on lihtne. Vaja on vaid mõned nimelised vahemikud ja valem INDIRECT. See meetod töötab kõigi Excel 365 - 2010 ja varasemate versioonidega.

    1. Sisestage ripploendite kirjed

    Kõigepealt kirjutage kirjed, mida soovite ripploendistesse kuvada, iga loetelu eraldi veergu. Näiteks loen ma puuviljaeksportijate ripploendist ja minu lähtelehe veerus A ( Puuviljad ) sisaldab esimese rippmenüü elemendid ja 3 muud veergu loetlevad sõltuvate rippmenüüde elemendid.

    2. Looge nimelised vahemikud

    Nüüd peate looma nimed oma põhilistile ja igale sõltuvale nimekirjale. Seda saate teha kas uue nime lisamisega failis Nimi Manager aken ( Valemid tab> Nimi Manager> Uus) või sisestades nime otse Nimi Kast .

    Märkus. Palun pöörake tähelepanu sellele, et kui teie esimene rida on mingi veeru pealkiri, nagu näete ülaltoodud ekraanipildil, siis ei tohi seda lisada nimetatud vahemikku.

    Üksikasjalikud samm-sammulised juhised leiate jaotisest Kuidas määrata nime Excelis.

    Asjad, mida meeles pidada:

    1. Esimeses rippmenüüst loetelus peavad olema ühe sõnaga kirjed, nt. Aprikoos , Mango , Apelsinid Kui teil on kahest, kolmest või enamast sõnast koosnevad elemendid, vaadake palun, kuidas luua mitme sõnaga rippmenüüd.
    2. Sõltuvate nimekirjade nimed peavad olema täpselt samad, mis vastavad kirjed põhinimekirjas. Näiteks kuvatakse sõltuv nimekiri, kui " Mango " on valitud esimesest rippmenüüst, peaks olema nimega Mango .

    Kui olete lõpetanud, võite vajutada Ctrl+F3, et avada Nimi Manager aknas ja kontrollige, kas kõikides nimekirjades on õiged nimed ja viited.

    3. Tehke esimene (peamine) rippmenüü.

    1. Valige samas või teises tabelis lahter või mitu lahtrit, kus soovite, et teie esmane rippmenüü ilmuks.
    2. Minge Andmed vahekaart, klõpsake Andmete valideerimine ja seadistada ripploendist, mis põhineb tavapärasel viisil nimelisel vahemikul, valides Loetelu aadressil Luba ja sisestades vahemiku nime lahtrisse Allikas kast.

    Üksikasjalikud sammud leiate jaotisest Nimekirjavahemikul põhineva ripploendi tegemine.

    Selle tulemusena tekib teie töölehel selline rippmenüü:

    4. Looge sõltuvuses olev rippmenüü

    Valige lahter(id) oma sõltuva rippmenüü jaoks ja rakendage uuesti Exceli andmete valideerimist, nagu eelmises sammus kirjeldatud. Kuid seekord sisestate vahemiku nime asemel järgmise valemi lahtrisse Allikas valdkond:

    =INDIRECT(A2)

    Kus A2 on lahter, kus on teie esimene (esmane) rippmenüü.

    Kui lahter A2 on praegu tühi, siis kuvatakse veateade " Allikas hindab praegu viga. Kas soovite jätkata? "

    Klõpsake turvaliselt Jah ja niipea, kui te valite esimese rippmenüüst mingi elemendi, näete sellele vastavaid kirjeid teises, sõltuvas rippmenüüs.

    5. Lisage kolmas sõltuvuses olev rippmenüü (valikuline)

    Vajaduse korral võiksite lisada kolmanda kaskaadse rippmenüü, mis sõltub kas valikust 2. rippmenüüs või valikutest kahes esimeses rippmenüüs.

    Seadistage 3. rippmenüü, mis sõltub 2. nimekirjast

    Sellise ripploendi saad teha samamoodi, nagu me just tegime teise sõltuva rippmenüü. Lihtsalt pea meeles 2 olulist asja, mida eespool käsitleti ja mis on olulised sinu kaskaadiliste ripploendite korrektseks tööks.

    Näiteks kui soovite näidata veerus C piirkondade loetelu sõltuvalt sellest, milline riik on valitud veerus B, loote iga riigi jaoks piirkondade loetelu ja nimetate selle riigi nime järgi, täpselt nii, nagu see riik ilmub teises rippmenüüst. Näiteks India piirkondade loetelu tuleks nimetada "India", Hiina piirkondade loetelu - "Hiina" ja nii edasi.

    Pärast seda valite lahtri 3. rippmenüü jaoks (meie puhul C2) ja rakendate Exceli andmete valideerimist järgmise valemiga (B2 on lahter, kus on teine rippmenüü, mis sisaldab riikide loetelu):

    =INDIRECT(B2)

    Nüüd, iga kord, kui valite India veerus B oleva riikide loetelu all on kolmandas rippmenüüst järgmised valikud:

    Märkus. Kuvatud piirkondade loetelu on iga riigi puhul ainulaadne, kuid see ei sõltu esimeses rippmenüüst tehtud valikust.

    Loo kolmas rippmenüü, mis sõltub kahest esimesest nimekirjast.

    Kui teil on vaja luua kaskaadne rippmenüü, mis sõltub nii esimeses kui ka teises rippmenüüs tehtud valikutest, siis toimige nii:

    1. Looge täiendavad nimeliste vahemike komplektid ja nimetage need kahe esimese rippmenüü sõnakombinatsioonide järgi. Näiteks on teil olemas Mango, apelsinid jne. esimeses nimekirjas ja India, Brasiilia jne. 2. Seejärel loote nimelised vahemikud MangoIndia , MangoBrazil , ApelsinidIndia , ApelsinidBrasiilia , jne. Need nimed ei tohiks sisaldada alajaotusi ega muid lisamärke.

  • Rakendage Exceli andmete valideerimist valemiga INDIRECT SUBSTITUTE, mis ühendab kahe esimese veeru kirjete nimed ja eemaldab nimedest tühikud. Näiteks lahtris C2 oleks andmete valideerimise valem järgmine:
  • =INDIRECT(SUBSTITUTE(A2&B2," ",""))

    Kus A2 ja B2 sisaldavad vastavalt esimest ja teist rippmenüüd.

    Selle tulemusena kuvatakse teie 3. ripploendistikus piirkonnad, mis vastavad Puuviljad ja Riik valitud 2 esimeses ripploendis.

    See on kõige lihtsam viis Exceli kaskaadiliste rippmenüüde loomiseks. Sellel meetodil on siiski mitmeid piiranguid.

    Selle lähenemisviisi piirangud:

    1. Esmase ripploendi elemendid peavad olema ühesõnalised kirjed. Vaadake, kuidas luua mitme sõnaga ripploendeid.
    2. See meetod ei tööta, kui teie põhilise rippmenüü nimekirja kirjed sisaldavad märke, mis ei ole vahemiku nimedes lubatud, näiteks sidekriips (-), ampersand (&) jne. Lahendus on luua dünaamiline kaskaadne rippmenüü, millel ei ole seda piirangut.
    3. Sel viisil loodud rippmenüüd ei uuendata automaatselt, st te peate muutma nimede vahemike viiteid iga kord, kui lisate või eemaldate elemente lähtenimekirjades. Selle piirangu ületamiseks proovige teha dünaamiline kaskaadne rippmenüü.

    Mitmesõnaliste kirjetega kaskaadiliste ripploendite loomine

    INDIRECT-valemid, mida me kasutasime eespool toodud näites, saavad käsitleda ainult ühesõnalisi elemente. Näiteks valem =INDIRECT(A2) viitab kaudselt lahtrisse A2 ja kuvab nimetatud vahemiku täpselt sama nimega, mis on viidatud lahtris. Excelis ei ole aga nimedes lubatud tühikud, mistõttu see valem ei tööta mitmesõnaliste nimede puhul.

    Lahendus on kasutada funktsiooni INDIRECT koos SUBSTITUTE'iga, nagu me tegime 3. rippmenüü loomisel.

    Oletame, et teil on Vesimelon toodete hulgas. Sel juhul nimetate veemeloni eksportijate nimekirja ühe sõnaga ilma tühikuteta - Arbuus .

    Seejärel rakendage teise rippmenüü puhul Exceli andmete valideerimist järgmise valemiga, mis eemaldab lahtris A2 olevas nimes olevad tühikud:

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

    Kuidas vältida muudatusi esmases ripploendis

    Kujutage ette järgmist stsenaariumi. Teie kasutaja on teinud valikud kõigis ripploendilistides, seejärel muutis ta oma arvamust, läks tagasi esimesse loendisse ja valis teise elemendi. Selle tulemusena on 1. ja 2. valik omavahel vastuolus. Et seda vältida, võite blokeerida kõik muudatused esimeses ripploendilises loendis kohe, kui teises loendis on tehtud valik.

    Selleks kasutage esimese rippmenüü loomisel spetsiaalset valemit, mis kontrollib, kas teises rippmenüüs on valitud mõni kirje:

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

    Kus B2 sisaldab teist rippmenüüd, " Puuviljad " on esimeses rippmenüüs kuvatava nimekirja nimi ja " FakeList " on mis tahes võltsnimi, mida ei ole olemas.

    Nüüd, kui 2. rippmenüüst on valitud mõni element, ei ole valikuid saadaval, kui kasutaja klõpsab noolega esimese nimekirja kõrval.

    Dünaamiliste kaskaadiliste ripploendite loomine Excelis

    Dünaamilise Excelist sõltuva rippmenüü peamiseks eeliseks on see, et saate vabalt redigeerida lähtenimekirju ja teie rippmenüüd uuendatakse jooksvalt. Loomulikult nõuab dünaamiliste rippmenüüde loomine veidi rohkem aega ja keerulisemaid valemeid, kuid ma usun, et see on väärt investeering, sest kui sellised rippmenüüd on kord loodud, on nendega tõeliselt meeldiv töötada.

    Nagu peaaegu kõige puhul Excelis, saab sama tulemuse saavutada mitmel viisil. Eelkõige saate luua dünaamilise rippmenüü, kasutades OFFSET, INDIRECT ja COUNTA funktsioonide kombinatsiooni või vastupidavamat INDEX MATCH valemit. Viimane on minu eelistatud viis, sest see pakub mitmeid eeliseid, millest kõige olulisemad on järgmised:

    1. Sa pead looma ainult 3 nimelist vahemikku, olenemata sellest, kui palju elemente on põhi- ja sõltuvas nimekirjas.
    2. Teie nimekirjad võivad sisaldada mitmesõnalisi kirjeid ja mis tahes erimärke.
    3. Kirjete arv igas veerus võib erineda.
    4. Kirjete järjestus ei ole oluline.
    5. Lõpuks on väga lihtne säilitada ja muuta lähtekoodide nimekirju.

    Okei, teooriast piisab, asume praktikasse.

    1. Korraldage oma lähteandmed tabelisse

    Nagu tavaliselt, tuleb teil kõigepealt kirjutada kõik valikud oma rippmenüüde jaoks töölehele. Seekord peate salvestama lähteandmed Exceli tabelisse. Selleks valige pärast andmete sisestamist kõik kirjed ja vajutage Ctrl + T või klõpsake nuppu Sisesta tab> Tabel . Seejärel sisestage oma tabeli nimi lahtrisse Tabeli nimi kast.

    Kõige mugavam ja visuaalsem lähenemine on salvestada esimese rippmenüü elemendid tabeli päistena ja sõltuva rippmenüü elemendid tabeli andmetena. Allpool olev ekraanipilt illustreerib minu tabeli struktuuri, mille nimeks on exporters_tbl - puuviljade nimed on tabeli päised ja vastava puuviljanime alla on lisatud ekspordiriikide loetelu.

    2. Looge Exceli nimed

    Nüüd, kui teie lähteandmed on valmis, on aeg luua nimelised viited, mis hangivad dünaamiliselt õige nimekirja teie tabelist.

    2.1. Lisage nimi tabeli päise reale (peamine rippmenüü)

    Uue nime loomiseks, mis viitab tabeli päisele, valige see ja seejärel klõpsake kas Valemid > Nimi Manager > Uus või vajutage Ctrl + F3 .

    Microsoft Excel kasutab sisseehitatud tabeli viitesüsteemi, et luua nimi table_name[#Headers] muster.

    Andke sellele mõni tähendusrikas ja kergesti meeldejääv nimi, nt. fruit_list ja klõpsake OK .

    2.2. Looge esimese ripploendi sisaldava lahtri nimi

    Ma tean, et sul ei ole veel ühtegi rippmenüüd :) Aga sa pead valima lahtri, kus asub sinu esimene rippmenüü, ja looma sellele lahtrile nüüd nime, sest sa pead selle nime lisama kolmanda nime viide.

    Näiteks minu esimene rippmenüü asub lehe 2 lahtris B1, seega loo ma sellele nime, midagi lihtsat ja iseenesestmõistetavat, näiteks puuviljad :

    Vihje. Kasutage asjakohaseid lahtriviiteid, et kopeerida ripploendeid üle töölehe.

    Palun lugege järgnevat paari lõiku tähelepanelikult, sest see on väga kasulik nõuanne, mida te ei taha vahele jätta. Suur tänu Karenile selle postitamise eest!

    Kui te kavatsete oma ripploendeid kopeerida teistesse lahtritesse, siis kasutage segatud lahtriviiteid, kui loote oma esimese ripploendiga lahtri(de) nime.

    Selleks, et rippmenüüd saaks korrektselt kopeerida teistesse veerud (st paremale), kasutage suhtelisi veergude (ilma $-märgita) ja absoluutseid ridade ($-ga) viiteid, näiteks = Sheet2!B$1.

    Selle tulemusena ilmub B1-i sõltuv rippmenüü lahtrisse B2; C1-i sõltuv rippmenüü ilmub lahtrisse C2 ja nii edasi.

    Ja kui te kavatsete kopeerida rippmenüüd teistesse read (st veeru allapoole), siis kasutage absoluutseid veeru (koos $) ja suhtelisi rea (ilma $) koordinaate nagu = Sheet2!$B1.

    Kui soovite kopeerida lahtrit ükskõik millises suunas, kasutage suhtelist viidet (ilma $-märgita), näiteks = Sheet2!B1.

    2.3. Looge nimi, et otsida sõltuva menüü kirjeid

    Selle asemel, et määrata igale sõltuvale loendile unikaalne nimi, nagu eelmises näites, loome ühe nime nimega valem mis ei ole määratud ühegi konkreetse lahtri või lahtrivahemiku juurde. See hangib teise ripploendi jaoks õige kirjete loetelu sõltuvalt sellest, milline valik on tehtud esimeses ripploendis. Selle valemi kasutamise peamine eelis on see, et te ei pea looma uusi nimesid, kui lisate uusi kirjeid esimesse ripploendisse - üks nimega valem katab need kõik.

    Selle valemiga loote uue Exceli nime:

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

    Kus:

    • exporters_tbl - tabeli nimi (mis on loodud etapis 1);
    • puuviljad - esimese ripploendi (loodud punktis 2.2) sisaldava lahtri nimi;
    • fruit_list - nimi, mis viitab tabeli päisrivile (mis on loodud etapis 2.1).

    Ma andsin sellele nime exporters_list , nagu näete allpool oleval ekraanipildil.

    Noh, suurema osa tööst olete juba teinud! Enne viimase sammu tegemist võib olla hea mõte avada Nime haldur ( Ctrl + F3 ) ja kontrollida nimesid ja viiteid:

    3. Exceli andmete valideerimise seadistamine

    See on tegelikult kõige lihtsam osa. Kui kaks nimetatud valemit on paigas, siis seadistate andmete valideerimise tavalisel viisil ( Andmed tab> Andmete valideerimine ).

    • Esimese ripploendi lahtrisse Source (Allikas) sisestage järgmine tekst =fruit_list (sammus 2.1 loodud nimi).
    • Sõltuvuses oleva ripploendi jaoks sisestage =exporters_list (sammus 2.3 loodud nimi).

    Valmis! Teie dünaamiline kaskaadjuhtimisega rippmenüü on valmis ja uuendab automaatselt, kajastades lähtetabelis tehtud muudatusi.

    Sellel dünaamilisel Exceli rippmenüülil, mis on muus osas täiuslik, on üks puudus - kui teie lähtetabeli veerud sisaldavad erinevat arvu elemente, ilmuvad tühjad read teie menüüs selliselt:

    Tühjade ridade väljajätmine dünaamilisest kaskaadistuvast rippmenüüst

    Kui soovite puhastada tühje ridu oma rippmenüüde kastides, peate astuma sammu edasi ja parandama INDEX / MATCH valemit, mida kasutatakse sõltuvate dünaamiliste rippmenüüde loomiseks.

    Idee on kasutada 2 INDEX-funktsiooni, kus esimene saab vasakpoolse ülemise lahtri ja teine tagastab vahemiku parempoolse alumise lahtri, või OFFSET-funktsiooni koos sisseehitatud INDEXi ja COUNTA-ga. Järgnevad üksikasjalikud sammud:

    1. Looge kaks täiendavat nime

    Et valemit mitte liiga mahukaks teha, looge esmalt paar abinime järgmiste lihtsate valemitega:

    • Nimi nimega col_num et viidata valitud veeru numbrile:

      =MATCH(fruit,fruit_list,0)

    • Nimi nimega entire_col et viidata valitud veerule (mitte veeru numbrile, vaid kogu veerule):

      =INDEX(exporters_tbl,,col_num)

    Ülaltoodud valemites, exporters_tbl on teie lähtetabeli nimi, puuviljad on esimest rippmenüüd sisaldava lahtri nimi ja fruit_list on nimi, mis viitab tabeli päise reale.

    2. Loo nimeline viide sõltuva rippmenüü jaoks

    Järgmisena kasutage ühte allpool toodud valemitest, et luua uus nimi (nimetame seda näiteks exporters_list2 ), mida kasutatakse koos sõltuva rippmenüüga:

    =INDEX(exporters_tbl,1,col_num) : INDEX(exporters_tbl, COUNTA(whole_col), col_num)

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

    3. Rakendage andmete valideerimist

    Lõpuks valige lahter, mis sisaldab sõltuvat rippmenüüd, ja rakendage andmete valideerimist, sisestades = exporters_list2 (eelmises etapis loodud nimi)in the Allikas kast.

    Allpool olev ekraanipilt näitab Exceli dünaamilist rippmenüüd, kus kõik tühjad read on kadunud!

    Märkus. Kui töötate ülaltoodud valemitega loodud dünaamiliste kaskaadiliste rippmenüüde nimekirjadega, ei takista miski kasutajat muutmast väärtust esimeses rippmenüüs pärast valiku tegemist teises menüüs, mille tulemusena võivad esmase ja teisese rippmenüü valikud erineda. Te saate blokeerida muudatused esimeses kastis pärast valiku tegemist teises kastis, kasutades kas VBA võiselles õpetuses soovitatud keerulised valemid.

    Nii saate luua Exceli andmete valideerimisloendi, mis põhineb teise loendi väärtustel. Palun laadige julgelt alla meie näidistööraamatud, et näha kaskaadseid ripploendeid töös. Täname lugemise eest!

    Praktiline töövihik allalaadimiseks

    Cascading Dropdown Sample 1- lihtne versioon

    Cascading Dropdown Sample 2 - täiustatud versioon ilma tühikuteta

    Michael Brown on pühendunud tehnoloogia entusiast, kelle kirg on tarkvaratööriistade abil keerukate protsesside lihtsustamine. Rohkem kui kümneaastase kogemusega tehnoloogiatööstuses on ta lihvinud oma oskusi Microsoft Excelis ja Outlookis, samuti Google Sheetsis ja Docsis. Michaeli ajaveebi eesmärk on jagada oma teadmisi ja teadmisi teistega, pakkudes hõlpsasti järgitavaid näpunäiteid ja õpetusi tootlikkuse ja tõhususe parandamiseks. Olenemata sellest, kas olete kogenud professionaal või algaja, pakub Michaeli ajaveebi väärtuslikke teadmisi ja praktilisi nõuandeid nende oluliste tarkvaratööriistade maksimaalseks kasutamiseks.