Cuprins
Cu ceva timp în urmă am început să explorăm capacitățile validării datelor Excel și am învățat cum să creăm o listă derulantă simplă în Excel pe baza unei liste separate prin virgulă, a unui interval de celule sau a unui interval numit.
Astăzi, vom investiga această caracteristică în profunzime și vom învăța cum să creăm liste derulante în cascadă care afișează opțiuni în funcție de valoarea selectată în prima listă derulantă. Altfel spus, vom crea o listă de validare a datelor Excel bazată pe valoarea unei alte liste.
Cum să creați mai multe picături dependente în Excel
Realizarea unor liste derulante dependente pe mai multe niveluri în Excel este ușoară. Tot ce aveți nevoie sunt câteva intervale numite și formula INDIRECT. Această metodă funcționează cu toate versiunile de Excel 365 - 2010 și anterioare.
1. Introduceți intrările pentru listele derulante
În primul rând, introduceți intrările pe care doriți să apară în listele derulante, fiecare listă într-o coloană separată. De exemplu, creez o listă derulantă în cascadă a exportatorilor de fructe și coloana A din foaia mea sursă ( Fructe ) include elementele din prima listă derulantă, iar alte 3 coloane enumeră elementele pentru listele derulante dependente.
2. Creați intervale denumite
Acum trebuie să creați nume pentru lista principală și pentru fiecare dintre listele dependente. Puteți face acest lucru fie adăugând un nume nou în fișierul Nume Manager fereastră ( Formule tab> Nume Manager> Nou) sau tastând numele direct în fereastra Caseta de nume .
Notă. Vă rugăm să fiți atenți la faptul că, dacă primul rând este un fel de antet de coloană, așa cum vedeți în imaginea de mai sus, nu trebuie să îl includeți în intervalul numit.
Pentru instrucțiuni detaliate pas cu pas, consultați Cum se definește un nume în Excel.
Lucruri de reținut:
- Elementele care trebuie să apară în prima listă derulantă trebuie să fie intrări formate dintr-un singur cuvânt, de exemplu. Caisă , Mango , Portocale Dacă aveți elemente formate din două, trei sau mai multe cuvinte, consultați Cum să creați o listă derulantă în cascadă cu intrări cu mai multe cuvinte.
- Numele listelor dependente trebuie să fie exact aceleași cu cel al intrării corespunzătoare din lista principală. De exemplu, lista dependentă care urmează să fie afișată atunci când " Mango " este selectat din prima listă derulantă trebuie să se numească Mango .
După ce ați terminat, este posibil să doriți să apăsați Ctrl+F3 pentru a deschide fereastra Nume Manager și verificați dacă toate listele au nume și referințe corecte.
3. Faceți prima listă derulantă (principală)
- În aceeași foaie de calcul sau într-o altă foaie de calcul, selectați o celulă sau mai multe celule în care doriți să apară lista derulantă principală.
- Mergeți la Date fila, faceți clic pe Validarea datelor și configurați o listă derulantă bazată pe un interval numit în mod obișnuit, selectând Lista la adresa Permiteți și introducerea numelui intervalului în fereastra Sursa cutie.
Pentru pașii detaliați, consultați Realizarea unei liste derulante pe baza unui interval numit.
Ca rezultat, veți avea un meniu derulant în foaia de lucru similar cu acesta:
4. Creați lista derulantă dependentă
Selectați o celulă (sau mai multe) pentru meniul derulant dependent și aplicați din nou Excel Data Validation, așa cum s-a descris în pasul anterior. Dar de data aceasta, în loc de numele intervalului, introduceți următoarea formulă în câmpul Sursa domeniu:
=INDIRECT(A2)
Unde A2 este celula cu prima listă derulantă (principală).
Dacă celula A2 este momentan goală, veți primi mesajul de eroare " Sursa este evaluată în prezent ca fiind o eroare. Doriți să continuați? "
Faceți clic în siguranță Da , iar de îndată ce selectați un element din primul meniu derulant, veți vedea intrările corespunzătoare în cea de-a doua listă derulantă, dependentă.
5. Adăugați o a treia listă derulantă dependentă (opțional)
Dacă este necesar, puteți adăuga o a treia listă derulantă în cascadă care depinde fie de selecția din cel de-al doilea meniu derulant, fie de selecțiile din primele două liste derulante.
Configurați a treia listă derulantă care depinde de a doua listă
Puteți realiza lista derulantă de acest tip în același mod în care tocmai am realizat un al doilea meniu derulant dependent. Amintiți-vă doar cele 2 lucruri importante discutate mai sus, care sunt esențiale pentru funcționarea corectă a listelor derulante în cascadă.
De exemplu, dacă doriți să afișați o listă de regiuni în coloana C în funcție de țara selectată în coloana B, creați o listă de regiuni pentru fiecare țară și denumiți-o după numele țării, exact așa cum apare țara în a doua listă derulantă. De exemplu, o listă de regiuni indiene ar trebui să se numească "India", o listă de regiuni chinezești - "China", și așa mai departe.
După aceea, selectați o celulă pentru a treia listă derulantă (C2 în cazul nostru) și aplicați Excel Data Validation cu următoarea formulă (B2 este celula cu al doilea meniu derulant care conține o listă de țări):
=INDIRECT(B2)
Acum, de fiecare dată când selectați India sub lista de țări din coloana B, veți avea următoarele opțiuni în cea de-a treia listă derulantă:
Notă. Lista de regiuni afișată este unică pentru fiecare țară, dar nu depinde de selecția din prima listă derulantă.
Creați o a treia listă derulantă dependentă de primele două liste
Dacă trebuie să creați un meniu derulant în cascadă care depinde de selecțiile din prima și a doua listă derulantă, procedați astfel:
- Creați seturi suplimentare de intervale numite și denumiți-le pentru combinațiile de cuvinte din primele două liste derulante. De exemplu, aveți Mango, portocale, etc. în prima listă și India, Brazilia etc. în al 2-lea. Apoi se creează intervale numite MangoIndia , MangoBrazil , PortocaleIndia , PortocaleBrazilia , etc. Aceste denumiri nu trebuie să conțină caractere de subliniere sau alte caractere suplimentare.
=INDIRECT(SUBSTITUTE(A2&B2," ","")))
Unde A2 și B2 conțin prima și, respectiv, a doua listă derulantă.
Ca rezultat, cea de-a treia listă derulantă va afișa regiunile care corespund Fructe și Țara selectate în primele două liste derulante.
Acesta este cel mai simplu mod de a crea casete derulante în cascadă în Excel. Cu toate acestea, această metodă are o serie de limitări.
Limitările acestei abordări:
- Elementele din lista derulantă principală trebuie să fie intrări cu un singur cuvânt. Consultați cum să creați liste derulante în cascadă cu intrări cu mai multe cuvinte.
- Această metodă nu va funcționa în cazul în care intrările din lista derulantă principală conțin caractere care nu sunt permise în numele intervalelor, cum ar fi cratima (-), ampersandă (&) etc. Soluția este de a crea o listă derulantă dinamică în cascadă care nu are această restricție.
- Meniurile derulante create în acest mod nu sunt actualizate automat, adică va trebui să modificați referințele intervalelor numite de fiecare dată când adăugați sau eliminați elemente din listele sursă. Pentru a depăși această limitare, încercați să creați o listă derulantă dinamică în cascadă.
Creați liste derulante în cascadă cu intrări cu mai multe cuvinte
Formulele INDIRECT pe care le-am folosit în exemplul de mai sus pot gestiona numai elemente cu un singur cuvânt. De exemplu, formula =INDIRECT(A2) face trimitere indirectă la celula A2 și afișează intervalul numit exact cu același nume ca și cel din celula la care se face trimitere. Cu toate acestea, spațiile nu sunt permise în numele Excel, motiv pentru care această formulă nu va funcționa cu nume cu mai multe cuvinte.
Soluția este de a utiliza funcția INDIRECT în combinație cu SUBSTITUTE, așa cum am făcut atunci când am creat o a treia listă derulantă.
Să presupunem că aveți Pepene verde În acest caz, se numește o listă de exportatori de pepeni cu un singur cuvânt fără spații. Pepene verde .
Apoi, pentru cea de-a doua listă derulantă, aplicați Excel Data Validation cu următoarea formulă care elimină spațiile din numele din celula A2:
=INDIRECT(SUBSTITUTE(A2," ",""))
Cum să împiedicați modificările în lista derulantă principală
Imaginați-vă următorul scenariu: utilizatorul a făcut selecțiile în toate listele derulante, apoi s-a răzgândit, s-a întors la prima listă și a ales un alt element. Ca urmare, prima și a doua selecție nu corespund. Pentru a preveni acest lucru, este posibil să doriți să blocați orice modificare în prima listă derulantă imediat ce se face o selecție în cea de-a doua listă.
Pentru a face acest lucru, atunci când creați prima listă derulantă, utilizați o formulă specială care va verifica dacă este selectată vreo intrare în cel de-al doilea meniu derulant:
=IF(B2="", Fruit, INDIRECT("FakeList"))
În cazul în care B2 conține a doua listă derulantă, " Fructe " este numele listei care apare în primul meniu derulant, iar " FakeList " este orice nume fals care nu există.
Acum, dacă este selectat un element în cea de-a doua listă derulantă, nu va fi disponibilă nicio alegere atunci când utilizatorul face clic pe săgeata de lângă prima listă.
Crearea de liste dinamice în cascadă în cascadă în Excel
Principalul avantaj al unei liste derulante dinamice dependente de Excel este că aveți libertatea de a edita listele sursă și căsuțele dvs. derulante vor fi actualizate din mers. Desigur, crearea de liste derulante dinamice necesită ceva mai mult timp și formule mai complexe, dar cred că este o investiție demnă de luat în seamă, deoarece, odată configurate, astfel de meniuri derulante sunt o adevărată plăcere să lucrezi cu ele.
Ca și în cazul a aproape orice în Excel, puteți obține același rezultat în mai multe moduri. În special, puteți crea o listă derulantă dinamică folosind o combinație de funcții OFFSET, INDIRECT și COUNTA sau o formulă mai rezistentă INDEX MATCH. Aceasta din urmă este modul meu preferat, deoarece oferă numeroase avantaje, dintre care cele mai esențiale sunt:
- Trebuie să creați numai 3 intervale numite, indiferent de numărul de elemente din lista principală și din cea dependentă.
- Listele dvs. pot conține elemente cu mai multe cuvinte și orice caractere speciale.
- Numărul de intrări poate varia în fiecare coloană.
- Ordinea de sortare a intrărilor nu are importanță.
- În cele din urmă, este foarte ușor de întreținut și de modificat listele de surse.
Bine, destul cu teoria, să trecem la practică.
1. Organizați datele sursă într-un tabel
Ca de obicei, primul lucru pe care trebuie să îl faceți este să scrieți toate opțiunile pentru listele derulante într-o foaie de calcul. De data aceasta, va trebui să stocați datele sursă într-un tabel Excel. Pentru aceasta, după ce ați introdus datele, selectați toate intrările și apăsați Ctrl + T sau faceți clic pe Introduceți tab> Tabelul Apoi introduceți un nume de tabel în fereastra Nume tabel cutie.
Cea mai convenabilă și vizuală abordare este să stocați elementele pentru prima listă derulantă ca antet de tabel, iar elementele pentru lista derulantă dependentă ca date de tabel. Imaginea de mai jos ilustrează structura tabelului meu, numit exportatori_tbl - denumirile fructelor sunt titluri de tabel, iar sub denumirea fructelor corespunzătoare se adaugă o listă a țărilor exportatoare.
2. Creați nume în Excel
Acum că datele sursă sunt pregătite, este timpul să setați referințele numite care vor prelua în mod dinamic lista corectă din tabel.
2.1. Adăugați un nume pentru rândul de antet al tabelului (picătura principală)
Pentru a crea un nume nou care să facă referire la antetul tabelului, selectați-l și apoi faceți clic fie pe Formule > Nume Manager > Nou sau apăsați Ctrl + F3 .
Microsoft Excel va utiliza sistemul de referință încorporat al tabelului pentru a crea numele tabelului. nume_tabel[#Headers] model.
Dați-i un nume semnificativ și ușor de ținut minte, de ex. fruit_list , și faceți clic pe OK .
2.2. Creați un nume pentru celula care conține prima listă derulantă
Știu că nu aveți încă nicio listă derulantă :) Dar trebuie să alegeți celula care va găzdui prima listă derulantă și să creați un nume pentru acea celulă acum, deoarece va trebui să includeți acest nume în referința celui de-al treilea nume.
De exemplu, prima mea casetă derulantă se află în celula B1 de pe foaia 2, așa că am creat un nume pentru ea, ceva simplu și explicit, cum ar fi fructe :
Sfat. Folosiți referințe adecvate la celule pentru a copierea listelor derulante pe toată foaia de lucru.
Vă rugăm să citiți cu atenție următoarele câteva paragrafe pentru că este un sfat foarte util pe care nu vreți să îl ratați. Mulțumim mult lui Karen pentru că l-a postat!
Dacă intenționați să copiați listele derulante în alte celule, utilizați referințe de celule mixte atunci când creați numele celulei (celulelor) cu prima listă derulantă.
Pentru ca drop-down-urile să fie copiate corect în alte coloane (adică la dreapta), utilizați referințe relative de coloană (fără semnul $) și absolute de rând (cu $), cum ar fi = Sheet2!B$1.
Ca rezultat, lista derulantă dependentă de B1 va apărea în celula B2; lista derulantă dependentă de C1 va fi afișată în C2 și așa mai departe.
Și dacă intenționați să copiați dropdown-urile în alte aplicații rânduri (adică în josul coloanei), apoi utilizați coordonatele absolute ale coloanei (cu $) și relative ale rândului (fără $), cum ar fi = Sheet2!$B1.
Pentru a copia o celulă derulantă în orice direcție, utilizați o referință relativă (fără semnul $), cum ar fi = Sheet2!B1.
2.3. Creați un nume pentru a prelua intrările din meniul dependent
În loc să stabilim nume unice pentru fiecare dintre listele dependente, așa cum am făcut în exemplul anterior, vom crea o listă unică formula numită care nu este atribuită unei anumite celule sau unui interval de celule. Aceasta va prelua lista corectă de intrări pentru cea de-a doua listă derulantă în funcție de selecția făcută în prima listă derulantă. Principalul avantaj al utilizării acestei formule este că nu va trebui să creați nume noi pe măsură ce adăugați noi intrări în prima listă derulantă - o singură formulă cu nume le acoperă pe toate.
Cu această formulă se creează un nou nume Excel:
=INDEX(exporters_tbl,,MATCH(fruit,fruit_list,0))
Unde:
exportatori_tbl
- numele tabelului (creat la etapa 1);fructe
- numele celulei care conține prima listă derulantă (creată la etapa 2.2);fruit_list
- numele care face referire la rândul de antet al tabelului (creat la etapa 2.1).
I-am dat un nume listă_exportatori , așa cum vedeți în captura de ecran de mai jos.
Ei bine, ați făcut deja cea mai mare parte a lucrului! Înainte de a trece la ultimul pas, ar fi bine să deschideți Managerul de nume ( Ctrl + F3 ) și să verificați numele și referințele:
3. Configurați validarea datelor Excel
Aceasta este, de fapt, cea mai ușoară parte. După ce ați pus la punct cele două formule numite, configurați validarea datelor în modul obișnuit ( Date tab> Validarea datelor ).
- Pentru prima listă derulantă, în caseta Sursa, introduceți =fruit_list (numele creat la etapa 2.1).
- Pentru lista derulantă dependentă, introduceți =exporters_list (denumirea creată la etapa 2.3).
Gata! Meniul dvs. dinamic în cascadă este gata și se va actualiza automat, reflectând modificările pe care le-ați făcut în tabelul sursă.
Această picătură dinamică din Excel, perfectă în toate celelalte privințe, are un singur neajuns - dacă coloanele din tabelul sursă conțin un număr diferit de elemente, rândurile goale vor apărea în meniul dvs. astfel:
Excludeți rândurile goale din picătura dinamică în cascadă
Dacă doriți să curățați liniile goale din casetele derulante, va trebui să faceți un pas mai departe și să îmbunătățiți formula INDEX / MATCH utilizată pentru a crea lista derulantă dinamică dependentă.
Ideea este de a utiliza 2 funcții INDEX, în care prima obține celula din stânga-sus, iar a doua returnează celula din dreapta-jos a intervalului, sau funcția OFFSET cu INDEX și COUNTA imbricate. Pașii detaliați urmează mai jos:
1. Creați două nume suplimentare
Pentru a nu face formula prea voluminoasă, creați mai întâi câteva nume auxiliare cu următoarele formule simple:
- Un nume numit col_num pentru a face trimitere la numărul de coloană selectat:
=MATCH(fruit,fruit_list,0)
- Un nume numit whole_col pentru a face trimitere la coloana selectată (nu la numărul coloanei, ci la întreaga coloană):
=INDEX(exportatori_tbl,,col_num)
În formulele de mai sus, exportatori_tbl
este numele tabelului sursă, fructe
este numele celulei care conține prima listă derulantă, iar fruit_list
este numele care face referire la rândul de antet al tabelului.
2. Creați referința cu nume pentru lista derulantă dependentă
Apoi, utilizați oricare dintre formulele de mai jos pentru a crea un nume nou (să îl numim exportatori_list2 ) care urmează să fie utilizate cu lista derulantă dependentă:
=INDEX(exporters_tbl,1,col_num) : INDEX(exporters_tbl, COUNTA(entire_col), col_num)
=OFFSET(INDEX(exporters_tbl,1,col_num),0,0,0,COUNTA(entire_col))
3. Aplicați validarea datelor
În cele din urmă, selectați celula care conține lista derulantă dependentă și aplicați validarea datelor introducând = =. exportatori_list2 (numele creat la pasul anterior) în fișierul Sursa cutie.
Captura de ecran de mai jos arată meniul derulant dinamic rezultat în Excel, unde toate liniile goale au dispărut!
Notă. Atunci când lucrați cu listele dinamice în cascadă create cu formulele de mai sus, nimic nu împiedică utilizatorul să modifice valoarea din prima listă derulantă după ce a făcut selecția în cel de-al doilea meniu, ca urmare, alegerile din listele derulante primare și secundare pot să nu corespundă. Puteți bloca modificările în prima casetă după ce se face o selecție în cea de-a doua folosind fie VBA, fieformule complexe sugerate în acest tutorial.
Acesta este modul în care creați o listă Excel de validare a datelor pe baza valorilor unei alte liste. Nu ezitați să descărcați modelele noastre de registru de lucru pentru a vedea listele derulante în cascadă în acțiune. Vă mulțumim pentru lectură!
Caietul de practică pentru descărcare
Cascading Dropdown Exemplu 1- versiune ușoară
Cascading Dropdown Sample 2 - versiunea avansată fără spații libere