Listas desplegables anidadas en Excel con índice y coincidir
Resumen
Potencia tus reportes creando listas desplegables anidadas con validación de datos, índice y coincidir. Así, cada selección en tu primera lista mostrará solo las subopciones relevantes en la segunda. El resultado: experiencias más claras, ordenadas y rápidas para quien consulta tu información.
¿Qué es una lista desplegable anidada y por qué mejora tu reporte?
Una lista anidada conecta dos menús: eliges una categoría y, automáticamente, el segundo menú muestra sus subcategorías. Por ejemplo: hogar, moda u oficina activan opciones distintas. Esto evita mostrar todo a la vez y facilita el análisis.
Reduce el ruido visual y el error humano.
Acelera la selección al mostrar solo opciones válidas.
Hace tu reporte más interactivo y usable.
¿Cómo crear la primera lista con validación de datos?
Primero, arma una lista simple con las categorías principales. Es el punto de partida para enlazar la segunda lista.
Selecciona la celda donde irá la lista.
Abre menú de datos y entra a validación de datos.
Elige lista.
En origen, selecciona el rango de categorías superiores. Confirma.
Verifica que aparezcan opciones como moda, oficina o software.
Consejo práctico: fija rangos con F4 cuando requieras un rango matriz estable.
¿Cómo conectar la segunda lista con índice y coincidir?
La clave es usar índice para devolver la columna de subcategorías correcta y coincidir para encontrar el número de columna según la categoría elegida en la primera lista. Así, el segundo menú se actualiza solo.
¿Cómo funciona índice para devolver columnas completas?
Índice recibe una matriz, un número de fila y un número de columna. Si apuntas a toda la matriz y dejas el número de fila en blanco para traer todas las filas, podrás devolver una columna completa de subcategorías. Cuando se especifica una fila y columna, devuelve una sola celda; por ejemplo, fila dos y columna dos devuelve “cafetera”.
Matriz: tu tabla completa de categorías y subcategorías.
Fila: vacía cuando quieres todas las opciones.
Columna: el número de columna a devolver.
¿Qué hace coincidir y por qué devuelve 5?
Coincidir busca un valor dentro de un encabezado y regresa su posición. Ejemplo: buscar “software” en la fila de cabeceras con coincidencia exacta (0) devuelve 5 porque es la quinta columna. Ese resultado reemplaza el número de columna en índice, volviéndolo dinámico.
Valor buscado: la categoría elegida en la primera lista, como “moda” o “software”.
Rango de búsqueda: solo las cabeceras, fijadas con F4.
Tipo de coincidencia: 0 para coincidencia exacta.
Integración práctica: índice usa la matriz completa; coincidir calcula la columna según la categoría seleccionada. Si cambias de “software” a “moda”, las subcategorías cambian en automático.
¿Cómo convertirlo en una lista desplegable?
Copia la fórmula dinámica que devuelve la columna de subcategorías.
Selecciona la celda donde irá la segunda lista.
Abre validación de datos y elige lista.
En origen, pega la fórmula y confirma.
Prueba: al elegir “oficina”, verás opciones como “cuaderno”; si cambias a “moda”, aparecerá “jeans”.
¿Cuál es el reto final?
Usa la pestaña con “categoría” y “negocio”.
Crea la primera lista basada en categoría: retail, PYME, mayorista.
Crea la segunda lista anidada para negocio que dependa de la categoría elegida.
Objetivo: si eliges retail, muestra sus tres opciones; si es PYME o mayorista, muestra sus tres opciones correspondientes.
Habilidades que refuerzas: validación de datos para listas, uso de índice para devolver matrices por columna, coincidir con coincidencia exacta (0) y fijación de rangos con F4. Viene perfecto para el siguiente módulo de tablas dinámicas avanzadas. ¿Qué parte te gustaría practicar más o qué duda quieres resolver?
Si alguien está usando Excel en inglés, la fórmula ÍNDICE es INDEX y COINCIDIR es MATCH.
🧠 ¿Qué hace la función INDEX?
La función INDEX devuelve el valor de una celda ubicada en la intersección de una fila y una columna dentro de un rango o matriz.
📌 Sintaxis básica (forma matricial):
=INDEX(matriz, núm_fila,[núm_columna])
matriz: el rango de celdas donde buscar (por ejemplo, A2:C5)
núm_fila: el número de fila dentro de esa matriz (no de la hoja)
núm_columna: el número de columna dentro de esa matriz (opcional si solo hay una columna)
✅ Ejemplo práctico
Supón que tienes esta tabla en el rango A2:C5:
Y quieres obtener el valor “Purple”, que está en la tercera fila y segunda columna del rango.
Fórmula:
=INDEX(A2:C5,3,2)
Resultado:Purple
Purple
🧩 Detalles importantes
Los índices empiezan en 1, no en 0.
Si omites núm_columna, Excel asume que es 1 (solo si hay una columna).
Si usas 0 como fila o columna, puedes devolver una fila o columna completa como matriz (útil en fórmulas avanzadas).
Si el índice está fuera del rango, devuelve #¡REF!.
🧠 ¿Para qué se usa INDEX?
Buscar valores en tablas sin usar BUSCARV.
Combinado con MATCH (COINCIDIR) para búsquedas dinámicas.
Extraer datos de múltiples rangos (forma de referencia).
Crear dashboards o reportes dinámicos.
La función MATCH (o COINCIDIR en español) en Excel devuelve la posición relativa de un valor dentro de un rango, no el valor en sí. Es ideal para búsquedas dinámicas y se usa comúnmente junto con INDEX.
🧠 ¿Qué hace MATCH?
La función MATCH busca un valor específico en una fila o columna y devuelve su posición dentro del rango. No devuelve el contenido de la celda, sino su posición ordinal.
📌 Sintaxis:
=MATCH(lookup_value, lookup_array,[match_type])
lookup_value: el valor que quieres buscar.
lookup_array: el rango donde buscar.
match_type:
0: coincidencia exacta.
1: menor o igual (requiere rango ordenado ascendente).
-1: mayor o igual (requiere rango ordenado descendente).
✅ Ejemplo práctico
Supón que tienes esta lista en A2:A6:
Y quieres saber en qué posición está “Orange”.
Fórmula:
=MATCH("Orange",A2:A6,0)
Resultado:
3
Porque “Orange” es el tercer elemento del rango.
🧩 Ejemplo con números y coincidencia aproximada
Supón que tienes ingresos mensuales en B2:B13:
Y quieres saber en qué mes se superó por primera vez el umbral de 10,000.
Fórmula:
=MATCH(10000,B2:B13,1)
Resultado:
3
Porque el tercer valor (Marzo) es el primero que supera 10,000, y el rango está ordenado ascendentemente.
🔗 Combinación con INDEX
Puedes usar MATCH para encontrar la posición y luego INDEX para obtener el valor asociado:
=INDEX(A2:A6,MATCH("Orange",A2:A6,0))
Esto devuelve “Orange”, usando su posición calculada por MATCH.
🧠 Buenas prácticas
Usa 0 para coincidencia exacta si el rango no está ordenado.
Usa MATCH con ISNA para detectar errores de búsqueda.
Ideal para búsquedas dinámicas en dashboards y formularios.
¿Qué pasa si agrego nuevas subcategorías después?
Si agregas nuevas subcategorías al final de tu base de datos, la lista desplegable no las mostrará automáticamente a menos que hayas preparado tu fórmula para ello. Por defecto, los rangos que seleccionas (como A2:D10) son fijos y estáticos. Para que tu lista sea a prueba de balas y se actualice sola, la mejor práctica es convertir tu base de datos original en una Tabla Oficial de Excel presionando Ctrl + T. Al hacer esto, los rangos se vuelven completamente dinámicos. Si el día de mañana decides vender "Zapatos" dentro de la categoría "Moda" y lo escribes justo debajo de la última opción, la tabla absorberá ese nuevo dato y se expandirá automáticamente. Tu función ÍNDICE detectará este crecimiento sin que tengas que modificar ni una sola coma en tu regla de Validación de datos.
Muchas gracias por esa sugerencia!
¡Solución Reto Clase!
Cuento mi experiencia. Pude hacerlo de otra manera, ya que no me funcionaba si dejaba la formula como indicaba la profe (no tengo 365). Lo que hice fue poner el número de fila en la fórmula hasta el 6 (repetí la formula 6 veces) y recién ahí tuve completa la lista. Luego normal
la formula =indice no me funciona, al presionar enter me aparece #¡VALOR! en mi Excel debo poner ";" con ese comando e trabajado hasta llegar este capitulo nose si sera por el comando que no me deja usar bien la formula
¡Hola grupo! Un dato rápido por si están haciendo el ejercicio de listas desplegables con INDICE: Si al dejar el espacio de la fila vacío (;;2) les da error #¡VALOR!, es porque no tienen Excel 365. Para arreglarlo, seleccionen el rango de celdas de la lista, pongan la fórmula y denle Ctrl + Shift + Enter para activarla como matricial. ¡Éxito con la clase! 👍
Excelente ayuda para limitar listas desplegables para equipos y evitar registros manuales que en la mayoria de los casos no ingresan los datos con un estándar requerido.
Para crear una segunda lista desplegable con respecto al resultado de la primera solo es asignar un nombre a cada columna Crear por selección (Para que quede con el mismo nombre). Posterior en la opción Validación de Datos utilizar la fórmula INDIRECTO o INDIRECT y así se puede condicionar una lista desplegable con otra.
Tengo un inconveniente, al colocar la formula =INDICE(L5:N7,,COINCIDIR(E5,L4:N4,0))
Tal cual se ve en el ejercicio, no me genera la lista como tal. Únicamente me devuelve un valor y en este caso es persona fisica.
Solo me sale un item
A mi también sólo me sale un ítem en vez de la columna completa, parece que es por la versión.
Aparentemente se soluciona colocando un cero (0) en vez de dejar vacía en num_fila pero aún así persiste el problema.
¿Cómo se resuelve este error en la validación de datos de la segunda lista?
a mi tambien me sucedio el mismo problema y lo que hice fue aplicar la formula en la celda de al lado la columna g una vez confirmado que estaba bien elimine la columna f y listo ya la listas quedaban una al lado una de la otra