Como facer unha lista despregable dependente (en cascada) en Excel

  • Comparte Isto
Michael Brown

Hai un tempo comezamos a explorar as capacidades da validación de datos de Excel e aprendemos a crear unha lista despregábel sinxela en Excel baseada nunha lista separada por comas, un rango de celas ou un intervalo con nome.

Hoxe, imos investigar esta función en profundidade e aprender a crear listas despregábeis en cascada que mostran opcións dependendo do valor seleccionado no primeiro menú despregable. Para dicilo doutro xeito, faremos unha lista de validación de datos de Excel baseada no valor doutra lista.

    Como crear un menú despregable dependente múltiple en Excel

    Facer unha lista múltiple. As listas despregábeis dependentes do nivel en Excel son fáciles. Todo o que necesitas son algúns intervalos con nome e a fórmula INDIRECTA. Este método funciona con todas as versións de Excel 365 - 2010 e anteriores.

    1. Escriba as entradas para as listas despregábeis

    Primeiro, escriba as entradas que quere que aparezan nas listas despregables, cada lista nunha columna separada. Por exemplo, estou creando un menú despregable en cascada de exportadores de froitas e a columna A da miña folla de orixe ( Froita ) inclúe os elementos do primeiro menú despregable e outras 3 columnas enumeran os elementos dos menús despregables dependentes.

    2. Crea intervalos con nome

    Agora tes que crear nomes para a túa lista principal e para cada unha das listas dependentes. Podes facelo engadindo un novo nome na xanela Xestor de nomes (pestana Fórmulas > Xestor de nomes > Novo) ou escribindo osigno) e referencias de fila absoluta (con $) como = Sheet2!B$1.

    Como resultado, a lista despregable dependente de B1 aparecerá na cela B2; O menú despregable dependente de C1 aparecerá en C2, e así por diante.

    E se pensas copiar os menús despregables noutras filas (é dicir, columna), a continuación, use as coordenadas de columna absoluta (con $) e de fila relativa (sen $) como = Folla2! $B1.

    Para copiar unha cela despregábel en calquera dirección, use unha referencia relativa (sen o signo $) como = Folla2!B1.

    2.3. Crea un nome para recuperar as entradas do menú dependente

    En lugar de configurar nomes únicos para cada unha das listas dependentes como fixemos no exemplo anterior, imos crear unha fórmula nomeada que non está asignado a ningunha cela en particular ou a un rango de celas. Recuperará a lista correcta de entradas para o segundo despregable dependendo da selección que se faga na primeira lista despregable. O principal beneficio de usar esta fórmula é que non terás que crear novos nomes mentres engades novas entradas á primeira lista despregable; unha fórmula nomeada cobre todas elas.

    Creas un novo nome de Excel. con esta fórmula:

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

    Onde:

    • exporters_tbl - o nome da táboa (creada no paso 1);
    • fruit - o nome da cela que contén a primeira lista despregable (creada no paso 2.2);
    • fruit_list - o nome que fai referencia á fila de cabeceira da táboa (creada enpaso 2.1).

    Deille un nome lista_exportadores , como ves na captura de pantalla que aparece a continuación.

    Ben , xa fixeches a maior parte do traballo! Antes de chegar ao paso final, pode ser unha boa idea abrir o Xestor de nomes ( Ctrl + F3 ) e verificar os nomes e as referencias:

    3. Configura a validación de datos de Excel

    Esta é realmente a parte máis sinxela. Coas dúas fórmulas nomeadas instaladas, configuras a validación de datos do xeito habitual (pestana Datos > Validación de datos ).

    • Para o primeiro lista despregábel, na caixa Orixe, introduza =fruit_list (o nome creado no paso 2.1).
    • Para a lista despregábel dependente, introduza =exporters_list (o nome creado no paso 2.3).

    Feito! O teu menú despregable dinámico en cascada está feito e actualizarase automaticamente reflectindo os cambios que fixeches na táboa de orixe.

    Este menú despregable dinámico de Excel, perfecto en todos os demais aspectos , ten unha deficiencia: se as columnas da súa táboa de orixe conteñen un número diferente de elementos, as filas en branco aparecerán no seu menú así:

    Excluír as filas en branco do menú. menú despregable dinámico en cascada

    Se queres limpar as liñas en branco das túas caixas despregábeis, terás que dar un paso máis e mellorar a fórmula INDEX / COINCIDENCIA utilizada para crear a lista despregábel dinámica dependente.

    A idea é usar2 funcións INDEX, onde a primeira obtén a cela superior esquerda e a segunda devolve a cela inferior dereita do intervalo, ou a función OFFSET con INDEX e COUNTA anidados. Os pasos detallados seguen a continuación:

    1. Crea dous nomes adicionais

    Para non facer que a fórmula sexa demasiado voluminosa, crea primeiro un par de nomes auxiliares coas seguintes fórmulas sinxelas:

    • Un nome chamado núm_col para facer referencia ao número de columna seleccionado:

      =MATCH(fruit,fruit_list,0)

    • Un nome chamado col_enteira para facer referencia á columna seleccionada (non ao número da columna, senón á columna enteira):

      =INDEX(exporters_tbl,,col_num)

    Nas fórmulas anteriores, exporters_tbl é o nome da táboa de orixe, fruit é o nome da cela que contén o primeiro menú despregable e fruit_list é o nome que fai referencia á fila de cabeceira da táboa.

    2. Cree a referencia nomeada para o menú despregable dependente

    A continuación, utilice calquera das seguintes fórmulas para crear un novo nome (chamémoslle lista_exportadores2 ) que se utilizará coa lista despregábel dependente:

    =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. Aplicar validación de datos

    Finalmente, seleccione a cela que contén o menú despregable dependente e aplique a validación de datos introducindo = lista_exportadores2 (o nome creado no paso anterior) na Fonte caixa.

    A seguinte captura de pantalla mostra o menú despregable dinámico resultante en Excel onde todas as liñas en branco desapareceron!

    Nota. Cando se traballa con listas despregábeis dinámicas en cascadacreado coas fórmulas anteriores, nada impide que o usuario cambie o valor no primeiro menú despregable despois de facer a selección no segundo menú, polo que as opcións dos menús despregables primario e secundario poden non coincidir. Podes bloquear os cambios na primeira caixa despois de facer unha selección na segunda usando VBA ou fórmulas complexas suxeridas neste tutorial.

    Así é como crea unha lista de validación de datos de Excel baseada nos valores doutra lista. Non dubides en descargar os nosos libros de traballo de mostra para ver as listas despregábeis en cascada en acción. Grazas por ler!

    Caderno de prácticas para descargar

    Mostra despregable en cascada 1: versión sinxela

    Mostra desplegable en cascada 2: versión avanzada sen espazos en branco

    nome directamente no Cadro de nomes.

    Nota. Por favor, preste atención a que se a súa primeira fila é unha especie de cabeceira de columna como ves na captura de pantalla anterior, non a incluirá no rango nomeado.

    Para obter instrucións detalladas paso a paso, consulta Como definir un nome en Excel.

    Cousas a lembrar:

    1. Os elementos para aparecer na primeira lista despregable deben ser entradas dunha palabra, p. ex. Damasco , Mango , Laranxas . Se tes elementos compostos por dúas, tres ou máis palabras, consulta Como crear un menú despregable en cascada con entradas de varias palabras.
    2. Os nomes das listas dependentes deben ser exactamente os mesmos que a entrada coincidente na principal. lista. Por exemplo, a lista dependente que se mostrará cando se selecciona " Mango " da primeira lista despregable debería chamarse Mango .

    Cando remate , pode querer premer Ctrl+F3 para abrir a xanela Xestor de nomes e comprobar se todas as listas teñen nomes e referencias correctos.

    3 . Fai a primeira lista despregábel (principal)

    1. Na mesma folla de cálculo ou noutra, selecciona unha ou varias celas nas que queres que apareza a túa lista despregábel principal.
    2. Vaia á pestana Datos , faga clic en Validación de datos e configure unha lista despregábel baseada nun intervalo nomeado do xeito habitual seleccionando Lista en Permitir e introducir o nome do intervalo no campoCaixa Fonte .

    Para obter os pasos detallados, consulte Creación dunha lista despregable baseada nun intervalo nomeado.

    Como resultado, terás un menú despregable na túa folla de traballo semellante a este:

    4. Cree a lista despregable dependente

    Seleccione unha(s) cela(s) para o seu menú despregable dependente e aplique de novo a validación de datos de Excel como se describe no paso anterior. Pero esta vez, en lugar do nome do intervalo, introduce a seguinte fórmula no campo Fonte :

    =INDIRECT(A2)

    Onde A2 é a cela coa túa primeira cela (principal) lista despregable.

    Se a cela A2 está baleira, aparecerá a mensaxe de erro " A fonte avalía actualmente un erro. Desexa continuar ? "

    Fai clic con seguridade en Si e, en canto selecciones un elemento do primeiro menú despregable, verás as entradas que lle corresponden no segundo, dependente. , lista despregable.

    5. Engade unha terceira lista despregable dependente (opcional)

    Se é necesario, podes engadir unha terceira lista despregábel en cascada que depende da selección do segundo menú despregable ou das seleccións do primeiro. dous menús despregables.

    Configurar un terceiro despregable que depende da segunda lista

    Podes crear a lista despregábel deste tipo do mesmo xeito que acabamos de facer un segundo menú despregable dependente. menú abaixo. Só lembra as 2 cousas importantes comentadas anteriormente, que son esenciais parao traballo correcto das túas listas despregábeis en cascada.

    Por exemplo, se queres mostrar unha lista de rexións na columna C dependendo do país seleccionado na columna B, crea unha lista de rexións para cada unha. país e nomeao despois do nome do país, exactamente como o país aparece nas segundas listas despregábeis. Por exemplo, unha lista de rexións indias debería chamarse "India", unha lista de rexións chinesas - "China", etc.

    Despois diso, selecciona unha cela para o terceiro menú despregable (C2 na nosa lista). caso) e aplique a validación de datos de Excel coa seguinte fórmula (B2 é a cela co segundo menú despregable que contén unha lista de países):

    =INDIRECT(B2)

    Agora, cada vez que seleccione India na lista de países da columna B, terá as seguintes opcións no terceiro menú despregable:

    Nota. A lista de rexións mostrada é única para cada país, pero non depende da selección na primeira lista despregable.

    Cree un terceiro menú despregable dependente das dúas primeiras listas.

    Se precisa crear un menú despregable en cascada que dependa das seleccións tanto na primeira como na segunda lista despregable, proceda deste xeito :

    1. Cree conxuntos adicionais de intervalos con nome e nomeaos para as combinacións de palabras dos seus dous primeiros menús despregábeis. Por exemplo, tes Mango, laranxas, etc. na 1a lista e India, Brasil, etc. na 2a.A continuación, crea intervalos con nome MangoIndia , MangoBrazil , OrangesIndia , OrangesBrazil , etc. Estes nomes non deben conter guións baixos nin ningún outro carácter adicional. .

  • Aplicar a validación de datos de Excel coa fórmula SUBSTITUTO INDIRECTO que concatena os nomes das entradas das dúas primeiras columnas e elimina os espazos dos nomes. Por exemplo, na cela C2, a fórmula de validación de datos sería:
  • =INDIRECT(SUBSTITUTE(A2&B2," ",""))

    Onde A2 e B2 conteñen o primeiro e o segundo menú despregable, respectivamente.

    Como resultado, a súa terceira caída -down list mostrará as rexións correspondentes ao Froita e ao País seleccionados nas 2 primeiras listas despregábeis.

    Esta é a forma máis sinxela de crear caixas despregábeis en cascada en Excel. Non obstante, este método ten unha serie de limitacións.

    Limitacións deste enfoque:

    1. Os elementos da túa lista despregábel principal deben ter unha palabra. entradas. Vexa como crear listas despregábeis en cascada con entradas de varias palabras.
    2. Este método non funcionará se as entradas da súa lista despregábel principal conteñen caracteres non permitidos nos nomes de intervalos, como o guión ( -), ampersand (&), etc. A solución é crear un menú despregable dinámico en cascada que non teña esta restrición.
    3. Os menús despregables creados deste xeito non se actualizan automaticamente, é dicir, terás que cambiar os rangos nomeados'referencias cada vez que engada ou elimine elementos nas listas de orixe. Para superar esta limitación, tente facer unha lista despregábel dinámica en cascada.

    Cree listas despregábeis en cascada con entradas de varias palabras

    As fórmulas INDIRECTAS que usamos no exemplo arriba só pode xestionar elementos dunha palabra. Por exemplo, a fórmula =INDIRECT(A2) fai referencia indirecta á cela A2 e mostra o intervalo nomeado exactamente co mesmo nome que está na cela referenciada. Non obstante, non se permiten espazos nos nomes de Excel, polo que esta fórmula non funcionará con nomes de varias palabras.

    A solución é usar a función INDIRECTA en combinación con SUBSTITUTO como fixemos cando creamos un terceiro. menú despregable.

    Supoña que tes Sandía entre os produtos. Neste caso, nomea unha lista de exportadores de sandía cunha palabra sen espazos: Sandía .

    A continuación, para o segundo menú despregable, aplique a validación de datos de Excel coa seguinte fórmula que elimina o espazos do nome na cela A2:

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

    Como evitar cambios na lista despregable principal

    Imaxina o seguinte escenario . O teu usuario fixo as seleccións en todas as listas despregábeis, despois cambiou de opinión, volveu á primeira lista e escolleu outro elemento. Como resultado, a 1a e a 2a selección non coinciden. Para evitar que isto suceda, pode querer bloquear calquera cambio na primeiralista abaixo tan pronto como se faga unha selección na segunda lista.

    Para iso, ao crear o primeiro despregable, use unha fórmula especial que comprobará se se selecciona algunha entrada no segundo menú despregable:

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

    Onde B2 contén o segundo menú despregable, " Froita " é o nome da lista que aparece no primeiro menú despregable e " FakeList " é calquera nome falso que non existe.

    Agora, se se selecciona algún elemento na segunda lista despregable, non haberá opcións dispoñibles cando o o usuario fai clic na frecha situada ao lado da primeira lista.

    Crear listas despregábeis dinámicas en cascada en Excel

    A principal vantaxe dunha lista despregábel dinámica dependente de Excel é que tes liberdade para edita as listas de fontes e as túas caixas despregábeis actualizaranse ao voo. Por suposto, a creación de menús despregables dinámicos require un pouco máis de tempo e fórmulas máis complexas, pero creo que este é un investimento digno porque unha vez configurados, estes menús despregables son un verdadeiro pracer traballar.

    Como con case case calquera cousa en Excel, podes conseguir o mesmo resultado de varias maneiras. En particular, pode crear un menú despregable dinámico mediante unha combinación de funcións OFFSET, INDIRECTO e COUNTA ou unha fórmula INDEX MATCH máis resistente. Esta última é a miña forma preferida porque ofrece numerosas vantaxes, das cales as máis esenciais son:

    1. Ten que crear só 3 intervalos con nome, non importa comoHai moitos elementos nas listas principal e dependente.
    2. As túas listas poden conter elementos de varias palabras e calquera carácter especial.
    3. O número de entradas pode variar en cada columna.
    4. A orde de ordenación das entradas non importa.
    5. Finalmente, é moi doado manter e modificar as listas de orixe.

    Vale, abonda con teoría, imos á práctica.

    1. Organiza os teus datos de orixe nunha táboa

    Como de costume, o primeiro que debes facer é anotar todas as opcións para as túas listas despregábeis nunha folla de traballo. Nesta ocasión, terás que almacenar os datos de orixe nunha táboa de Excel. Para iso, unha vez que introduza os datos, seleccione todas as entradas e prema Ctrl + T ou prema a pestana Inserir > Táboa . A continuación, escriba un nome da súa táboa na caixa Nome da táboa .

    O enfoque máis cómodo e visual é almacenar os elementos do primeiro menú despregable como cabeceiras da táboa e os elementos para o menú despregable dependente como datos da táboa. A seguinte captura de pantalla ilustra a estrutura da miña táboa, chamada exporters_tbl : os nomes das froitas son cabeceiras da táboa e engádese unha lista de países exportadores baixo o nome de froita correspondente.

    2. Crea nomes de Excel

    Agora que os teus datos de orixe están listos, é hora de configurar referencias con nome que recuperarán de forma dinámica a lista correcta da túa táboa.

    2.1. Engade un nome para a fila de cabeceira da táboa (menú despregable principal)

    Para crear unnome novo que fai referencia á cabeceira da táboa, selecciónao e, a continuación, fai clic en Fórmulas > Xestor de nomes > Novo ou preme Ctrl + F3 .

    Microsoft Excel utilizará o sistema de referencia de táboas incorporado para crear o nome do patrón nome_táboa[#Headers] .

    Dálle algo. nome significativo e fácil de lembrar, p. ex. lista_de_froitas e prema en Aceptar .

    2.2. Crea un nome para a cela que contén a primeira lista despregable

    Sei que aínda non tes ningún menú despregable :) Pero tes que escoller a cela para aloxar o teu primeiro menú despregable e crear un nome para iso cela agora porque terás que incluír este nome na referencia do terceiro nome.

    Por exemplo, a miña primeira caixa despregábel reside na cela B1 da folla 2, polo que creo un nome para ela, algo sinxelo. e autoexplicativo como froita :

    Consello. Use as referencias de cela adecuadas para copiar listas despregábeis na folla de traballo.

    Asegúrate de ler atentamente os seguintes parágrafos porque este é un consello moi útil que non queres perderte . Moitas grazas a Karen por publicalo!

    Se pensas copiar as túas listas despregábeis noutras celas, utiliza referencias de celas mixtas cando crees o nome para a(s) cela(s) co teu primeiro menú despregable. lista.

    Para que os menús despregables se copien correctamente noutras columnas (é dicir, á dereita), use a columna relativa (sen $

    Michael Brown é un entusiasta da tecnoloxía dedicada á súa paixón por simplificar procesos complexos mediante ferramentas de software. Con máis dunha década de experiencia na industria tecnolóxica, perfeccionou as súas habilidades en Microsoft Excel e Outlook, así como en Follas de cálculo e Documentos de Google. O blog de Michael está dedicado a compartir o seu coñecemento e experiencia con outros, proporcionando consellos e titoriais fáciles de seguir para mellorar a produtividade e a eficiencia. Tanto se es un profesional experimentado como un principiante, o blog de Michael ofrece valiosas ideas e consellos prácticos para sacar o máximo proveito destas ferramentas de software esenciais.