Taula de continguts
Fa un temps vam començar a explorar les capacitats de la validació de dades d'Excel i vam aprendre a crear una llista desplegable senzilla a Excel basada en una llista separada per comes, un rang de cel·les o un rang amb nom.
Avui, investigarem aquesta funció en profunditat i aprendrem a crear llistes desplegables en cascada que mostren opcions en funció del valor seleccionat al primer menú desplegable. Per dir-ho d'una altra manera, farem una llista de validació de dades d'Excel basada en el valor d'una altra llista.
Com crear un menú desplegable de dependents múltiples a Excel
Fer un multi Les llistes desplegables depenent del nivell a Excel són fàcils. Tot el que necessiteu són uns quants rangs amb nom i la fórmula INDIRECTA. Aquest mètode funciona amb totes les versions d'Excel 365 - 2010 i anteriors.
1. Escriviu les entrades de les llistes desplegables
Primer, escriviu les entrades que voleu que apareguin a les llistes desplegables, cada llista en una columna independent. Per exemple, estic creant un menú desplegable en cascada d'exportadors de fruites i la columna A del meu full d'origen ( Fruita ) inclou els elements del primer menú desplegable i 3 columnes més mostren els elements dels menús desplegables dependents.
2. Creeu intervals amb nom
Ara heu de crear noms per a la vostra llista principal i per a cadascuna de les llistes dependents. Podeu fer-ho afegint un nom nou a la finestra Gestor de noms (pestanya Fórmules > Gestor de noms > Nou) o escrivint elsigne) i referències de fila absoluta (amb $) com = Full2!B$1.
Com a resultat, la llista desplegable dependent de B1 apareixerà a la cel·la B2; El menú desplegable dependent de C1 es mostrarà a C2, i així successivament.
I si teniu previst copiar els menús desplegables a altres files (és a dir, cap avall columna), a continuació, utilitzeu coordenades de columna absoluta (amb $) i fila relativa (sense $) com = Full2!$B1.
Per copiar una cel·la desplegable en qualsevol direcció, utilitzeu una referència relativa (sense el signe $) com = Full2!B1.
2.3. Creeu un nom per recuperar les entrades del menú dependent
En lloc de configurar noms únics per a cadascuna de les llistes dependents com vam fer a l'exemple anterior, crearem una fórmula anomenada que no està assignat a cap cel·la en particular o a un rang de cel·les. Recuperarà la llista correcta d'entrades per al segon desplegable en funció de la selecció que es faci a la primera llista desplegable. El principal avantatge d'utilitzar aquesta fórmula és que no haureu de crear noms nous quan afegiu entrades noves a la primera llista desplegable: una fórmula anomenada les cobreix totes.
Creeu un nom d'Excel nou. amb aquesta fórmula:
=INDEX(exporters_tbl,,MATCH(fruit,fruit_list,0))
On:
-
exporters_tbl
- el nom de la taula (creada al pas 1); -
fruit
- el nom de la cel·la que conté la primera llista desplegable (creada al pas 2.2); -
fruit_list
- el nom que fa referència a la fila de capçalera de la taula (creada apas 2.1).
Li vaig posar un nom llista_exportadors , com veieu a la captura de pantalla següent.
Bé , ja has fet la major part de la feina! Abans d'arribar al pas final, pot ser una bona idea obrir el Gestor de noms ( Ctrl + F3 ) i verificar els noms i les referències:
3. Configura la validació de dades d'Excel
Aquesta és realment la part més fàcil. Amb les dues fórmules anomenades al seu lloc, configureu la validació de dades de la manera habitual (pestanya Dades > Validació de dades ).
- Per a la primera llista desplegable, al quadre Font, introduïu =fruit_list (el nom creat al pas 2.1).
- Per a la llista desplegable dependent, introduïu =exporters_list (el nom creat al pas 2.3).
Fet! El vostre menú desplegable dinàmic en cascada s'ha completat i s'actualitzarà automàticament reflectint els canvis que heu fet a la taula d'origen.
Aquest menú desplegable dinàmic d'Excel, perfecte en tots els altres aspectes , té un inconvenient: si les columnes de la taula d'origen contenen un nombre diferent d'elements, les files en blanc apareixeran al menú com aquesta:
Exclou les files en blanc del menú. menú desplegable dinàmic en cascada
Si voleu netejar les línies en blanc dels vostres quadres desplegables, haureu de fer un pas més i millorar la fórmula INDEX / COINCIDENCIA que s'utilitza per crear la llista desplegable dinàmica dependent.
La idea és utilitzar2 funcions INDEX, on la primera obté la cel·la superior esquerra i la segona retorna la cel·la inferior dreta de l'interval, o la funció OFFSET amb INDEX i COUNTA imbricats. Els passos detallats són els següents:
1. Creeu dos noms addicionals
Per no fer que la fórmula sigui massa voluminosa, creeu primer un parell de noms d'ajuda amb les fórmules senzilles següents:
- Un nom anomenat núm_col per fer referència al número de columna seleccionat:
=MATCH(fruit,fruit_list,0)
- Un nom anomenat entire_col per fer referència a la columna seleccionada (no el número de la columna, sinó la columna sencera):
=INDEX(exporters_tbl,,col_num)
A les fórmules anteriors, exporters_tbl
és el nom de la taula font, fruit
és el nom de la cel·la que conté el primer menú desplegable i fruit_list
és el nom que fa referència a la fila de capçalera de la taula.
2. Creeu la referència anomenada per al menú desplegable dependent
A continuació, utilitzeu qualsevol de les fórmules següents per crear un nom nou (anomenarem-lo lista_exportadors2 ) que s'utilitzarà amb la llista desplegable dependent:
=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. Apliqueu la validació de dades
Finalment, seleccioneu la cel·la que conté el menú desplegable dependent i apliqueu la validació de dades introduint = exporters_list2 (el nom creat al pas anterior) a Font quadre.
La captura de pantalla següent mostra el menú desplegable dinàmic resultant a Excel on totes les línies en blanc han desaparegut!
Nota. Quan es treballa amb llistes desplegables dinàmiques en cascadacreat amb les fórmules anteriors, res impedeix que l'usuari canviï el valor del primer menú desplegable després de fer la selecció al segon menú, com a resultat, les opcions dels menús desplegables primari i secundari poden no coincidir. Podeu bloquejar els canvis al primer quadre després de fer una selecció al segon utilitzant VBA o fórmules complexes suggerides en aquest tutorial.
Així és com es crea una llista de validació de dades d'Excel basada en els valors d'una altra llista. Si us plau, no dubteu a descarregar els nostres llibres de treball de mostra per veure les llistes desplegables en cascada en acció. Gràcies per llegir-lo!
Llibre de pràctiques per descarregar
Mostra desplegable en cascada 1: versió fàcil
Mostra desplegable en cascada 2: versió avançada sense espais en blanc
nom directament al Caixa de noms.
Nota. Si us plau, tingueu en compte que si la vostra primera fila és una mena de capçalera de columna com veieu a la captura de pantalla anterior, no l'haureu d'incloure a l'interval nomenat.
Per obtenir instruccions detallades pas a pas, consulteu Com definir un nom a Excel.
Coses a recordar:
- Els elements a apareixen a la primera llista desplegable han de ser entrades d'una paraula, p. Albercoc , Mango , Taronges . Si teniu elements formats per dues, tres o més paraules, consulteu Com crear un menú desplegable en cascada amb entrades de diverses paraules.
- Els noms de les llistes dependents han de ser exactament els mateixos que l'entrada que coincideix a la part principal. llista. Per exemple, la llista dependent que es mostrarà quan se seleccioneu " Mango " de la primera llista desplegable s'hauria de anomenar Mango .
Quan s'hagi acabat , és possible que vulgueu prémer Ctrl+F3 per obrir la finestra Gestor de noms i comprovar si totes les llistes tenen noms i referències correctes.
3 . Feu la primera llista desplegable (principal)
- En el mateix full de càlcul o en un altre, seleccioneu una o diverses cel·les en les quals voleu que aparegui la vostra llista desplegable principal.
- Aneu a la pestanya Dades , feu clic a Validació de dades i configureu una llista desplegable basada en un interval amb nom de la manera habitual seleccionant Llista a sota Permet i introduïu el nom de l'interval al fitxerQuadre Font .
Per obtenir els passos detallats, consulteu Creació d'una llista desplegable basada en un interval amb nom.
Com a resultat, tindreu un menú desplegable al vostre full de treball semblant a aquest:
4. Creeu la llista desplegable dependent
Seleccioneu una o més cel·les per al vostre menú desplegable dependent i torneu a aplicar la validació de dades d'Excel tal com es descriu al pas anterior. Però aquesta vegada, en comptes del nom de l'interval, introduïu la fórmula següent al camp Font :
=INDIRECT(A2)
On A2 és la cel·la amb la vostra primera cel·la (principal) llista desplegable.
Si la cel·la A2 està buida actualment, obtindreu el missatge d'error " La font actualment s'avalua com a error. Voleu continuar ? "
Feu clic amb seguretat a Sí , i tan bon punt seleccioneu un element del primer menú desplegable, veureu les entrades que li corresponen al segon, depenent. , llista desplegable.
5. Afegiu una tercera llista desplegable dependent (opcional)
Si cal, podeu afegir una tercera llista desplegable en cascada que depèn de la selecció del segon menú desplegable o de les seleccions del primer. dos desplegables.
Configureu un tercer desplegable que depèn de la segona llista
Podeu crear la llista desplegable d'aquest tipus de la mateixa manera que acabem de fer un segon desplegable dependent. menú avall. Només recordeu les 2 coses importants comentades anteriorment, que són essencialsel treball correcte de les vostres llistes desplegables en cascada.
Per exemple, si voleu mostrar una llista de regions a la columna C en funció del país seleccionat a la columna B, creeu una llista de regions per a cadascuna. país i nomeneu-lo després del nom del país, exactament tal com apareix el país a les segones llistes desplegables. Per exemple, una llista de regions índies s'hauria de anomenar "Índia", una llista de regions xineses - "Xina", etc.
Després, seleccioneu una cel·la per al tercer menú desplegable (C2 al nostre cas) i apliqueu la validació de dades d'Excel amb la fórmula següent (B2 és la cel·la amb el segon menú desplegable que conté una llista de països):
=INDIRECT(B2)
Ara, cada vegada que seleccioneu Índia a la llista de països de la columna B, tindreu les opcions següents al tercer menú desplegable:
Nota. La llista de regions que es mostra és única per a cada país, però no depèn de la selecció de la primera llista desplegable.
Creeu un tercer menú desplegable en funció de les dues primeres llistes
Si necessiteu crear un menú desplegable en cascada que depèn de les seleccions tant a la primera com a la segona llistes desplegables, procediu d'aquesta manera :
- Creeu conjunts addicionals d'intervals amb nom i anomeneu-los per a les combinacions de paraules dels dos primers menús desplegables. Per exemple, tens Mango, taronges, etc. a la 1a llista i Índia, Brasil, etc. a la 2a.A continuació, creeu intervals de nom MangoIndia , MangoBrazil , OrangesIndia , OrangesBrazil , etc. Aquests noms no han de contenir guions baixos ni cap altre caràcter addicional. .
=INDIRECT(SUBSTITUTE(A2&B2," ",""))
On A2 i B2 contenen el primer i el segon menú desplegable, respectivament.
Com a resultat, la vostra tercera gota. -down list mostrarà les regions corresponents al Fruit i al País seleccionats a les 2 primeres llistes desplegables.
Aquesta és la manera més senzilla de crear quadres desplegables en cascada a Excel. Tanmateix, aquest mètode té una sèrie de limitacions.
Limitacions d'aquest enfocament:
- Els elements de la llista desplegable principal han de tenir una paraula. entrades. Vegeu com crear llistes desplegables en cascada amb entrades de diverses paraules.
- Aquest mètode no funcionarà si les entrades de la vostra llista desplegable principal contenen caràcters no permesos als noms d'interval, com ara el guionet ( -), et (&), etc. La solució és crear un menú desplegable dinàmic en cascada que no tingui aquesta restricció.
- Els menús desplegables creats d'aquesta manera no s'actualitzen automàticament, és a dir, haureu de canviar els rangs anomenats'referències cada vegada que afegiu o elimineu elements a les llistes d'origen. Per superar aquesta limitació, proveu de fer una llista desplegable dinàmica en cascada.
Creeu llistes desplegables en cascada amb entrades de diverses paraules
Les fórmules INDIRECTES que hem utilitzat a l'exemple anterior només pot gestionar elements d'una paraula. Per exemple, la fórmula =INDIRECT(A2) fa referència indirecta a la cel·la A2 i mostra l'interval anomenat exactament amb el mateix nom que hi ha a la cel·la a la qual es fa referència. Tanmateix, els espais no es permeten als noms d'Excel, per això aquesta fórmula no funcionarà amb noms de diverses paraules.
La solució és utilitzar la funció INDIRECTA en combinació amb SUBSTITUT com vam fer quan creàvem un tercer. menú desplegable.
Suposem que teniu Síndia entre els productes. En aquest cas, nomeneu una llista d'exportadors de síndries amb una paraula sense espais: Síndia .
A continuació, per al segon desplegable, apliqueu la validació de dades d'Excel amb la fórmula següent que elimina el espais del nom a la cel·la A2:
=INDIRECT(SUBSTITUTE(A2," ",""))
Com evitar canvis a la llista desplegable principal
Imagineu el següent escenari . El vostre usuari ha fet les seleccions a totes les llistes desplegables, després ha canviat d'opinió, ha tornat a la primera llista i ha escollit un altre element. Com a resultat, la 1a i la 2a seleccions no coincideixen. Per evitar que això passi, és possible que vulgueu bloquejar qualsevol canvi a la primerallista avall tan aviat com es faci una selecció a la segona llista.
Per fer-ho, quan creeu el primer desplegable, utilitzeu una fórmula especial que comprovarà si hi ha cap entrada seleccionada al segon menú desplegable:
=IF(B2="", Fruit, INDIRECT("FakeList"))
On B2 conté el segon menú desplegable, " Fruita " és el nom de la llista que apareix al primer menú desplegable i " FakeList " és qualsevol nom fals que no existeix.
Ara, si es selecciona algun element a la segona llista desplegable, no hi haurà opcions disponibles quan l'usuari fa clic a la fletxa al costat de la primera llista.
Crear llistes desplegables dinàmiques en cascada a Excel
El principal avantatge d'una llista desplegable dinàmica depenent d'Excel és que podeu editeu les llistes de fonts i els vostres quadres desplegables s'actualitzaran sobre la marxa. Per descomptat, la creació de menús desplegables dinàmics requereix una mica més de temps i fórmules més complexes, però crec que és una inversió digna perquè, un cop configurats, aquests menús desplegables són un veritable plaer treballar-hi.
Com passa gairebé amb gairebé tots. qualsevol cosa a Excel, podeu aconseguir el mateix resultat de diverses maneres. En particular, podeu crear un menú desplegable dinàmic mitjançant una combinació de funcions OFFSET, INDIRECTA i COUNTA o una fórmula de CONcordança d'índexs més resistent. Aquesta última és la meva manera preferida perquè ofereix nombrosos avantatges, els més essencials dels quals són:
- Només heu de crear 3 intervals amb nom, no importa comHi ha molts elements a les llistes principal i dependent.
- Les vostres llistes poden contenir elements de diverses paraules i qualsevol caràcter especial.
- El nombre d'entrades pot variar a cada columna.
- L'ordre de classificació de les entrades no importa.
- Finalment, és molt fàcil mantenir i modificar les llistes de fonts.
D'acord, prou teoria, anem a la pràctica.
1. Organitzeu les vostres dades d'origen en una taula
Com és habitual, el primer que heu de fer és anotar totes les opcions per a les vostres llistes desplegables en un full de treball. Aquesta vegada, haureu d'emmagatzemar les dades d'origen en una taula d'Excel. Per a això, un cop hàgiu introduït les dades, seleccioneu totes les entrades i premeu Ctrl + T o feu clic a la pestanya Insereix > Taula . A continuació, escriviu un nom de la vostra taula al quadre Nom de la taula .
L'enfocament més còmode i visual és emmagatzemar els elements del primer menú desplegable com a capçaleres de la taula i els elements per a el desplegable dependent com a dades de la taula. La captura de pantalla següent il·lustra l'estructura de la meva taula, anomenada exporters_tbl : els noms de les fruites són capçaleres de la taula i s'afegeix una llista de països exportadors sota el nom de fruita corresponent.
2. Creeu noms d'Excel
Ara que les vostres dades d'origen estan a punt, és hora de configurar referències amb nom que recuperaran dinàmicament la llista correcta de la vostra taula.
2.1. Afegiu un nom per a la fila de capçalera de la taula (menú desplegable principal)
Per crear unnom nou que fa referència a la capçalera de la taula, seleccioneu-lo i feu clic a Fórmules > Gestor de noms > Nou o premeu Ctrl + F3 .
Microsoft Excel utilitzarà el sistema de referència de taules integrat per crear el nom del patró table_name[#Headers] .
Dóna-li una mica. nom significatiu i fàcil de recordar, p. Llista_fruites i feu clic a D'acord .
2.2. Creeu un nom per a la cel·la que contingui la primera llista desplegable
Sé que encara no teniu cap menú desplegable :) Però heu de triar la cel·la per allotjar el vostre primer desplegable i crear-ne un nom cel·la ara perquè haureu d'incloure aquest nom a la referència del tercer nom.
Per exemple, el meu primer quadre desplegable es troba a la cel·la B1 del full 2, així que li creo un nom, una cosa senzilla. i s'explica per si mateix com fruita :
Consell. Utilitzeu les referències de cel·les adequades per copiar les llistes desplegables del full de treball.
Assegureu-vos de llegir atentament els paràgrafs següents perquè és un consell molt útil que no us voleu perdre. . Moltes gràcies a Karen per publicar-lo!
Si teniu previst copiar les vostres llistes desplegables a altres cel·les, feu servir referències de cel·les mixtes quan creeu el nom per a les cel·les amb el vostre primer desplegable. llista.
Perquè els menús desplegables es copien correctament a altres columnes (és a dir, a la dreta), utilitzeu la columna relativa (sense $