LISTAS DESPLEGABLES DINÁMICAS: 3 Métodos para conseguirlas
Unas buenas listas desplegables mejoran la usabilidad de tu hoja de cálculo y disminuyen drásticamente los errores al introducir nueva información. No te pierdas estos 3 métodos para dominarlas!
En la comunidad de WhatsApp de InflueXcel surgió un reto muy interesante planteado por Joan: partiendo de una tabla con una lista de nombres y, junto a cada uno, el número de veces que debía repetirse, había que generar como resultado una matriz completa con cada nombre repetido exactamente esas veces. Por ejemplo, si Leo aparece con un 4, debe salir cuatro veces; Andrés con un 2, dos veces, y así sucesivamente. Lo bonito del caso es que llegaron tres soluciones distintas, creativas y válidas, demostrando que en Excel casi siempre hay varios caminos para resolver el mismo problema. Vamos a verlas una a una.
Solución 1: REPETIR + UNIRCADENAS + DIVIDIRTEXTO (la idea de Leo)
La propuesta de Leo se basa en montar una cadena de texto larguísima separada por un delimitador y luego trocearla para construir la matriz de salida.
- Se usa
REPETIRdándole un texto (el nombre más un separador, en este caso el carácter|, la pleca o palo vertical) y el número de veces que debe repetirse. Si en lugar de una sola celda le pasamos todo el rango de nombres y todo el rango de repeticiones, la función se ejecuta para cada fila y devuelve el resumen en una única matriz. - Con
UNIRCADENASse concatena todo en una sola cadena. Se le pasa un delimitador vacío (""), se indica que ignore las celdas vacías y el rango generado porREPETIR. - Finalmente,
DIVIDIRTEXTOsepara esa cadena. No se usa delimitador de columna (lo dejamos vacío), sino delimitador de fila con el carácter|, de modo que cada vez que aparece el palo se crea una fila nueva. Se activa "ignorar celdas vacías" en verdadero, ya que el último elemento deja un separador sobrante.
La clave aquí es elegir como delimitador un carácter que no aparezca nunca dentro de los nombres, como la pleca, para evitar cortes indeseados.
Solución 2: MAKEARRAY con LAMBDA (la propuesta de Andrés)
Andrés tiró de MAKEARRAY, una función que genera una matriz indicando número de filas y columnas, y que llama a una LAMBDA recibiendo en cada celda el índice de fila (f) y de columna (c).
- El número de filas se calcula con
SUMAdel total de repeticiones (el resultado final). - El número de columnas es el número de categorías o nombres distintos.
- Dentro de la
LAMBDA, medianteSI, se comprueba: si el número de fila (f) es menor o igual que las repeticiones de esa columna (obtenidas conINDICEusandoc), entonces se devuelve el nombre correspondiente (de nuevo conINDICEsobre la columna de nombres). Si no, se fuerza un error con1/0, una indeterminación que Excel marca como error.
El resultado es una matriz donde cada columna representa un nombre repetido tantas veces como toque, rellenando el resto con errores. El paso final es aplastar esa matriz en una sola columna con APILARV... en realidad con ENCOL (TOCOL): se le indica que ignore los errores (valor 2) y que escanee por columnas, colocándolas una debajo de otra. Así se obtiene el listado limpio.
Solución 3: ESCANEAR + BUSCARX (la propuesta de Nacho)
La tercera vía usa ESCANEAR (SCAN) para crear una tabla de posiciones acumuladas al vuelo y luego BUSCARX para consultarla.
ESCANEARparte de un valor inicial (cero), recorre el array de repeticiones y, con unaLAMBDAde dos variables (el valor previo y el de la iteración), va sumando:previo + iteración. Esto genera un acumulado del tipo 4, 6, 9, 12, 17 (el total de filas).- Con
SECUENCIAse crea la lista del 1 al total de filas (la suma de todas las repeticiones). - Para cada número de esa secuencia se hace un
BUSCARXsobre la tabla acumulada generada porESCANEAR, devolviendo el nombre de la columna de categorías. La clave está en el modo de coincidencia: se usa la opción de coincidencia exacta o el siguiente elemento mayor, de forma que las posiciones 1 a 4 devuelven el primer nombre, las siguientes el segundo, y así sucesivamente.
Tres caminos, un mismo resultado
Lo mejor de este reto es que las tres fórmulas son dinámicas: si cambias un número de repeticiones, añades un nombre nuevo o insertas una fila, las tres soluciones se recalculan y adaptan automáticamente al resultado esperado.
Más allá de cuál sea la más elegante, cada enfoque enseña un mecanismo distinto de Excel: la manipulación de texto con REPETIR, UNIRCADENAS y DIVIDIRTEXTO; la construcción de matrices indexadas con MAKEARRAY y LAMBDA; y la acumulación iterativa con ESCANEAR combinada con búsquedas aproximadas de BUSCARX. Un ejemplo perfecto de cómo, dentro de una comunidad, un solo problema se convierte en una oportunidad de aprender varias técnicas a la vez.
Más contenido de Excel en InflueXcel
- Reorganizar tablas mensuales: cruzar por persona buscando en vertical y en horizontal CasoNuevo caso interesante de la comunidad. Juan tenía varias tablas mensuales (a veces más de una en el mismo mes) y quería reorganizarlas por
- Un dato de todas las hojas, escrito una sola vez CasoEsta semana surgió en la comunidad un reto muy habitual cuando un libro tiene muchas hojas: mostrar el valor de la celda B3 de cada hoja, in
- Un índice de hojas que se genera solo: HYPERLINK en rangos desbordados CasoEsta semana surgió en la comunidad un pequeño "expediente X". Un miembro llegó tras ver un vídeo con una idea clara en la cabeza: montar una
- Reformatear un código alfanumérico al teclear: de NN1234567 a NN-12345-67 CasoEsta semana surgió en la comunidad una duda muy práctica: cómo conseguir que al escribir un código tipo NN1234567 (dos letras seguidas de si
- Reclasificación contable: duplicar cada fila con una conversión distinta por columna, en un único bloque CasoInteresante reto contable planteado esta semana por un miembro de la comunidad. Juan parte de una tabla de apuntes contables (rango C7:P10)
- Cuenta clientes y cervezas en Excel 🍺 Caso "La Taberna: El Poney Pisador" (Nivel 1) Tutorial🍺 Noche cerrada en Bree. Frodo, Sam, Merry y Pippin cruzan la puerta de El Poney Pisador huyendo de los Jinetes Negros: la sala está a reven
- SUMAR.SI.CONJUNTO en acción con El Señor de los Anillos 🃏 El 21 de La Comarca TutorialLo que practicamos en este caso: • Contar cartas por palo con CONTAR.SI • Sumar valores con condiciones (SUMAR.SI / SUMAR.SI.CONJUNTO) • Apl
- Reto de Excel: El cumpleaños de Bilbo 🎂 | CONTAR.SI y SUMAR.SI desde cero (Nivel 1) TutorialEn La Comarca se celebra el cumpleaños número 111 de Bilbo Bolsón: cerveza, pasteles, fuegos artificiales… y algún curioso escondido tras el
- ¡Excel PowerQuery Hack! Conexiones con rutas relativas en 10 minutos! Tutorial¿Harto de ajustar las conexiones en PowerQuery cada vez que compartes tu archivo de Excel? 🙄 Convierte las conexiones de PowerQuery con ruta
- Mejora un 90% el rendimiento de Power Query con SQLite TutorialPower Query es una herramienta potente para consolidar, combinar y calcular datos, pero cuando trabajamos con millones de registros y calcul