Tabla de contenido
Hace un tiempo empezamos a explorar las capacidades de la Validación de Datos de Excel y aprendimos a crear una simple lista desplegable en Excel basada en una lista separada por comas, un rango de celdas o un rango con nombre.
Hoy vamos a investigar esta característica en profundidad y aprenderemos a crear listas desplegables en cascada que muestren opciones en función del valor seleccionado en el primer desplegable. Dicho de otro modo, haremos una lista de validación de datos de Excel basada en el valor de otra lista.
Cómo crear múltiples desplegables dependientes en Excel
Hacer listas desplegables dependientes de varios niveles en Excel es fácil. Todo lo que necesita son unos cuantos rangos con nombre y la fórmula INDIRECTO. Este método funciona con todas las versiones de Excel 365 - 2010 y anteriores.
1. Escriba las entradas de las listas desplegables
En primer lugar, escriba las entradas que desea que aparezcan en las listas desplegables, cada lista en una columna distinta. Por ejemplo, estoy creando una lista desplegable en cascada de exportadores de fruta y la columna A de mi hoja de origen ( Fruta ) incluye los elementos del primer desplegable y otras 3 columnas enumeran los elementos de los desplegables dependientes.
2. Crear rangos con nombre
Ahora necesita crear nombres para su lista principal y para cada una de las listas dependientes. Puede hacerlo añadiendo un nuevo nombre en el campo Nombre Gerente ventana ( Fórmulas tab> Nombre Administrador> Nuevo) o escribiendo el nombre directamente en Nombre .
Nota: Tenga en cuenta que si la primera fila es una especie de cabecera de columna, como se ve en la captura de pantalla anterior, no deberá incluirla en el intervalo indicado.
Para obtener instrucciones detalladas paso a paso, consulte Cómo definir un nombre en Excel.
Cosas para recordar:
- Los elementos que aparezcan en la primera lista desplegable deben ser entradas de una sola palabra, por ejemplo Albaricoque , Mango , Naranjas Si tiene elementos formados por dos, tres o más palabras, consulte Cómo crear un desplegable en cascada con entradas de varias palabras.
- Los nombres de las listas dependientes deben coincidir exactamente con la entrada correspondiente de la lista principal. Por ejemplo, la lista dependiente que se mostrará cuando " Mango "de la primera lista desplegable debe llamarse Mango .
Una vez hecho esto, puede pulsar Ctrl+F3 para abrir la pantalla Nombre Gerente y compruebe si todas las listas tienen nombres y referencias correctos.
3. Hacer la primera lista desplegable (principal)
- En la misma o en otra hoja de cálculo, selecciona una o varias celdas en las que quieras que aparezca tu lista desplegable principal.
- Ir a la Datos haga clic en Validación de datos y configurar una lista desplegable basada en un rango con nombre de la forma habitual seleccionando Lista en Permitir e introduciendo el nombre del rango en el campo Fuente caja.
Para conocer los pasos detallados, consulte Creación de una lista desplegable basada en un intervalo con nombre.
Como resultado, tendrá un menú desplegable en su hoja de cálculo similar a éste:
4. Crear la lista desplegable dependiente
Seleccione una(s) celda(s) para su menú desplegable dependiente y aplique de nuevo la Validación de datos de Excel como se describe en el paso anterior. Pero esta vez, en lugar del nombre del rango, introduzca la siguiente fórmula en el campo Fuente campo:
=INDIRECTO(A2)
Donde A2 es la celda con su primera lista desplegable (principal).
Si la celda A2 está vacía, aparecerá el mensaje de error " La Fuente evalúa actualmente a un error. ¿Desea continuar? "
Haga clic con seguridad Sí y en cuanto seleccione un elemento del primer menú desplegable, verá las entradas correspondientes en la segunda lista desplegable dependiente.
5. Añada una tercera lista desplegable dependiente (opcional)
Si fuera necesario, podría añadir una 3ª lista desplegable en cascada que dependiera de la selección en el 2º menú desplegable o de las selecciones en los dos primeros desplegables.
Configurar un tercer desplegable que dependa de la segunda lista
Puedes hacer la lista desplegable de este tipo de la misma manera que acabamos de hacer un segundo menú desplegable dependiente. Sólo recuerda las 2 cosas importantes comentadas anteriormente, que son esenciales para el correcto funcionamiento de tus listas desplegables en cascada.
Por ejemplo, si desea mostrar una lista de regiones en la columna C en función del país seleccionado en la columna B, cree una lista de regiones para cada país y nómbrela con el nombre del país, exactamente como aparece el país en las segundas listas desplegables. Por ejemplo, una lista de regiones indias debería llamarse "India", una lista de regiones chinas - "China", y así sucesivamente.
A continuación, seleccione una celda para el tercer menú desplegable (C2 en nuestro caso) y aplique la Validación de datos de Excel con la siguiente fórmula (B2 es la celda con el segundo menú desplegable que contiene una lista de países):
=INDIRECTO(B2)
Ahora, cada vez que seleccione India bajo la lista de países de la columna B, tendrá las siguientes opciones en el tercer desplegable:
Nota: la lista de regiones que se muestra es única para cada país, pero no depende de la selección realizada en la primera lista desplegable.
Crear un tercer desplegable dependiente de las dos primeras listas
Si necesita crear un menú desplegable en cascada que dependa de las selecciones tanto en la primera como en la segunda lista desplegable, proceda de este modo:
- Cree conjuntos adicionales de rangos con nombre y nómbrelos según las combinaciones de palabras de sus dos primeros desplegables. Por ejemplo, tiene Mango, Naranjas, etc. en la 1ª lista y India, Brasil, etc. en el 2º. Luego se crean rangos con nombre MangoIndia , MangoBrasil , NaranjasIndia , NaranjasBrasil etc. Estos nombres no deben contener guiones bajos ni ningún otro carácter adicional.
=INDIRECT(SUBSTITUTE(A2&B2," ",""))
Donde A2 y B2 contienen el primer y segundo desplegable, respectivamente.
Como resultado, su 3ª lista desplegable mostrará las regiones correspondientes al Fruta y País seleccionados en las 2 primeras listas desplegables.
Esta es la forma más sencilla de crear cuadros desplegables en cascada en Excel. Sin embargo, este método tiene una serie de limitaciones.
Limitaciones de este enfoque:
- Los elementos de la lista desplegable principal deben ser entradas de una sola palabra. Consulte cómo crear listas desplegables en cascada con entradas de varias palabras.
- Este método no funcionará si las entradas de su lista desplegable principal contienen caracteres no permitidos en los nombres de rangos, como el guión (-), el ampersand (&), etc. La solución es crear un desplegable dinámico en cascada que no tenga esta restricción.
- Los menús desplegables creados de esta forma no se actualizan automáticamente, es decir, tendrá que cambiar las referencias de los rangos con nombre cada vez que añada o elimine elementos en las listas de origen. Para superar esta limitación, pruebe a crear una lista desplegable en cascada dinámica.
Crear listas desplegables en cascada con entradas de varias palabras
Las fórmulas INDIRECTAS que hemos utilizado en el ejemplo anterior sólo pueden manejar elementos de una palabra. Por ejemplo, la fórmula =INDIRECTAS(A2) hace referencia indirecta a la celda A2 y muestra el rango nombrado exactamente con el mismo nombre que hay en la celda referenciada. Sin embargo, los espacios no están permitidos en los nombres de Excel, por lo que esta fórmula no funcionará con nombres de varias palabras.
La solución es utilizar la función INDIRECTO en combinación con SUSTITUIR como hicimos al crear un tercer desplegable.
Suponga que tiene Sandía entre los productos. En este caso, se nombra una lista de exportadores de sandía con una palabra sin espacios - Sandía .
Luego, para el segundo desplegable, aplica la Validación de Datos de Excel con la siguiente fórmula que elimina los espacios del nombre en la celda A2:
=INDIRECT(SUBSTITUTE(A2," ",""))
Cómo evitar cambios en la lista desplegable principal
Imagínese la siguiente situación: su usuario ha realizado las selecciones en todas las listas desplegables y, a continuación, ha cambiado de opinión, ha vuelto a la primera lista y ha elegido otro elemento. Como resultado, las selecciones 1ª y 2ª no coinciden. Para evitar que esto ocurra, puede que desee bloquear cualquier cambio en la primera lista desplegable en cuanto se realice una selección en la segunda lista.
Para ello, al crear el primer menú desplegable, utilice una fórmula especial que comprobará si hay alguna entrada seleccionada en el segundo menú desplegable:
=IF(B2="", Fruta, INDIRECT("FakeList"))
Donde B2 contiene el segundo desplegable, " Fruta " es el nombre de la lista que aparece en el primer menú desplegable, y " FakeList " es cualquier nombre falso que no existe.
Ahora, si se selecciona algún elemento en la 2ª lista desplegable, no habrá opciones disponibles cuando el usuario haga clic en la flecha situada junto a la primera lista.
Creación de listas desplegables dinámicas en cascada en Excel
La principal ventaja de un menú desplegable dinámico dependiente de Excel es que puedes editar libremente las listas de origen y tus cuadros desplegables se actualizarán sobre la marcha. Por supuesto, crear menús desplegables dinámicos requiere un poco más de tiempo y fórmulas más complejas, pero creo que es una inversión que merece la pena porque, una vez configurados, es un auténtico placer trabajar con este tipo de menús desplegables.
Como ocurre con casi todo en Excel, puedes conseguir el mismo resultado de varias formas. En concreto, puedes crear un desplegable dinámico utilizando una combinación de funciones OFFSET, INDIRECT y COUNTA o una fórmula INDEX MATCH más resistente. Esta última es mi forma preferida porque proporciona numerosas ventajas, las más esenciales de las cuales son:
- Sólo tiene que crear 3 rangos con nombre, independientemente del número de elementos que haya en las listas principal y dependiente.
- Sus listas pueden contener elementos de varias palabras y caracteres especiales.
- El número de entradas puede variar en cada columna.
- El orden de las entradas no importa.
- Por último, es muy fácil mantener y modificar las listas de fuentes.
Vale, basta de teoría, pasemos a la práctica.
1. Organizar los datos de origen en una tabla
Como de costumbre, lo primero que debe hacer es anotar todas las opciones de sus listas desplegables en una hoja de cálculo. En esta ocasión, deberá almacenar los datos de origen en una tabla de Excel. Para ello, una vez introducidos los datos, seleccione todas las entradas y pulse Ctrl + T o haga clic en Inserte tab> Cuadro A continuación, escriba el nombre de la tabla en el campo Nombre de la tabla caja.
Lo más cómodo y visual es almacenar los elementos del primer desplegable como encabezados de tabla, y los elementos del desplegable dependiente como datos de tabla. La siguiente captura de pantalla ilustra la estructura de mi tabla, denominada exportadores_tbl - los nombres de las frutas son cabeceras de tabla y se añade una lista de países exportadores bajo el nombre de la fruta correspondiente.
2. Crear nombres en Excel
Ahora que sus datos de origen están listos, es hora de configurar las referencias con nombre que recuperarán dinámicamente la lista correcta de su tabla.
2.1. Añadir un nombre para la fila de cabecera de la tabla (desplegable principal)
Para crear un nuevo nombre que haga referencia a la cabecera de la tabla, selecciónela y, a continuación, haga clic en Fórmulas > Nombre Gerente > Nuevo o pulse Ctrl + F3 .
Microsoft Excel utilizará el sistema de referencia de tablas incorporado para crear el nombre de la tabla nombre_tabla[#Cabeceras] patrón.
Dale algún nombre significativo y fácil de recordar, por ejemplo lista_frutas y haga clic en OK .
2.2. Crear un nombre para la celda que contiene la primera lista desplegable
Sé que todavía no tienes ningún desplegable :) Pero tienes que elegir la celda para alojar tu primer desplegable y crear un nombre para esa celda ahora porque necesitarás incluir este nombre en la referencia del tercer nombre.
Por ejemplo, mi primer cuadro desplegable reside en la celda B1 de la Hoja 2, así que le doy un nombre, algo sencillo y autoexplicativo como fruta :
Consejo: utilice las referencias de celda adecuadas para copiar listas desplegables a través de la hoja de cálculo.
Asegúrese de leer atentamente los párrafos siguientes, porque se trata de un consejo muy útil que no querrá perderse. ¡Muchas gracias a Karen por publicarlo!
Si piensa copiar sus listas desplegables en otras celdas, utilice referencias de celdas mixtas al crear el nombre de la(s) celda(s) con su primera lista desplegable.
Para que los desplegables se copien correctamente en otros columnas (es decir, a la derecha), utilice referencias relativas de columna (sin el signo $) y absolutas de fila (con $) como = Hoja2!B$1.
Como resultado, la lista desplegable dependiente de B1 aparecerá en la celda B2; la lista desplegable dependiente de C1 se mostrará en C2, y así sucesivamente.
Y si planea copiar los desplegables a otros filas (es decir, hacia abajo en la columna), entonces utilice coordenadas absolutas de columna (con $) y relativas de fila (sin $) como = Hoja2!$B1.
Para copiar una celda desplegable en cualquier dirección, utilice una referencia relativa (sin el signo $) como = Hoja2!B1.
2.3. Crear un nombre para recuperar las entradas del menú dependiente
En lugar de establecer nombres únicos para cada una de las listas dependientes como hicimos en el ejemplo anterior, vamos a crear una sola fórmula con nombre que no está asignada a ninguna celda en particular ni a ningún rango de celdas. Recuperará la lista correcta de entradas para el segundo desplegable dependiendo de la selección que se haga en el primer desplegable. La principal ventaja de utilizar esta fórmula es que no tendrás que crear nuevos nombres a medida que añadas nuevas entradas al primer desplegable: una fórmula con nombre las cubre todas.
Con esta fórmula se crea un nuevo nombre de Excel:
=INDEX(exportadores_tbl,,MATCH(fruta,lista_frutas,0))
Dónde:
exportadores_tbl
- el nombre de la tabla (creada en el paso 1);fruta
- el nombre de la celda que contiene la primera lista desplegable (creada en el paso 2.2);lista_de_frutas
- el nombre que hace referencia a la fila de cabecera de la tabla (creada en el paso 2.1).
Le di un nombre lista_exportadores como se puede ver en la siguiente captura de pantalla.
Antes de llegar al último paso, puede ser una buena idea abrir el Gestor de nombres ( Ctrl + F3 ) y verificar los nombres y referencias:
3. Configurar la validación de datos de Excel
Esta es en realidad la parte más fácil. Con las dos fórmulas nombradas en su lugar, se configura la Validación de Datos de la forma habitual ( Datos tab> Validación de datos ).
- En la primera lista desplegable, en el cuadro Fuente, introduzca =lista_frutas (el nombre creado en el paso 2.1).
- En la lista desplegable de dependientes, introduzca =lista_exportadores (el nombre creado en el paso 2.3).
Su menú desplegable dinámico en cascada está listo y se actualizará automáticamente reflejando los cambios que haya realizado en la tabla de origen.
Este desplegable dinámico de Excel, perfecto en todos los demás aspectos, tiene un defecto: si las columnas de su tabla de origen contienen un número diferente de elementos, las filas en blanco aparecerán en su menú de esta forma:
Excluir filas vacías del desplegable dinámico en cascada
Si desea limpiar las líneas en blanco de sus cuadros desplegables, tendrá que dar un paso más y mejorar la fórmula INDEX / MATCH utilizada para crear la lista desplegable dinámica dependiente.
La idea es utilizar 2 funciones INDEX, donde la primera obtiene la celda superior izquierda y la segunda devuelve la celda inferior derecha del rango, o la función OFFSET con INDEX y COUNTA anidados. Los pasos detallados siguen a continuación:
1. Crear dos nombres adicionales
Para no hacer la fórmula demasiado voluminosa, cree primero un par de nombres de ayuda con las siguientes fórmulas sencillas:
- Un nombre llamado col_num para hacer referencia al número de columna seleccionado:
=MATCH(fruta,lista_frutas,0)
- Un nombre llamado col_entera para hacer referencia a la columna seleccionada (no al número de la columna, sino a toda la columna):
=INDEX(exportadores_tbl,,col_num)
En las fórmulas anteriores, exportadores_tbl
es el nombre de la tabla de origen, fruta
es el nombre de la celda que contiene el primer desplegable, y lista_de_frutas
es el nombre que hace referencia a la fila de cabecera de la tabla.
2. Cree la referencia con nombre para el desplegable dependiente
A continuación, utilice cualquiera de las fórmulas siguientes para crear un nuevo nombre (llamémoslo lista_exportadores2 ) que se utilizará con la lista desplegable dependiente:
=INDEX(exportadores_tbl,1,col_num) : INDEX(exportadores_tbl, COUNTA(todo_col), col_num)
=OFFSET(INDEX(exportadores_tbl,1,col_num),0,0,COUNTA(todo_col))
3. Aplicar la validación de datos
Por último, seleccione la celda que contiene el desplegable dependiente y aplique la Validación de datos introduciendo = lista_exportadores2 (el nombre creado en el paso anterior)en el campo Fuente caja.
La siguiente captura de pantalla muestra el menú desplegable dinámico resultante en Excel, ¡donde han desaparecido todas las líneas en blanco!
Nota. Cuando se trabaja con listas desplegables dinámicas en cascada creadas con las fórmulas anteriores, nada impide que el usuario cambie el valor en el primer desplegable después de hacer la selección en el segundo menú, como resultado, las opciones en los desplegables primario y secundario pueden no coincidir. Puede bloquear los cambios en el primer cuadro después de hacer una selección en el segundo utilizando VBA ofórmulas complejas sugeridas en este tutorial.
Así es como se crea una lista de validación de datos de Excel basada en los valores de otra lista. No dude en descargar nuestros libros de trabajo de ejemplo para ver las listas desplegables en cascada en acción ¡Gracias por leer!
Cuaderno de prácticas para descargar
Cascading Dropdown Sample 1- versión fácil
Cascading Dropdown Sample 2 - versión avanzada sin espacios en blanco