Imprimir página | Cerrar ventana

Cuadro de listas con codigos despendientes

Impreso de: Foro de Access y VBA
Categoría: Otros de Microsoft: Windows y Office
Nombre del foro: Excel
Descripción del foro: Foro de Excel y VBA de Excel
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86757
Fecha de impresión: 26/Marzo/2026 a las 17:28


Tema: Cuadro de listas con codigos despendientes
Publicado por: alfare
Asunto: Cuadro de listas con codigos despendientes
Fecha de publicación: 30/Agosto/2023 a las 05:51
Hola Tengo el siguiente reto: 
En la siguiente imagen hay una serie de ejemplos de códigos entre la columnas A y B.
La columna A muestra los códigos de ejemplo de un producto terminado, mientras la columna B los códigos de los materiales que componen cada producto de la columna A. 
Necesito crear dos columnas D y F donde habrán cuadros de lista que permitirá escoger en la columna D el código del producto y cuando se seleccione, me devuelva en el cuadro de lista de la columna F de la fila correspondiente los códigos de los materiales que lo componen., y así sucesivamente en cada fila.

PD : los códigos de producto terminado pueden ser alrededor de 380 y cado uno puede tener mínimo un código de parte hasta máximo 10.

https://imgbb.com/" rel="nofollow">




De antemano gracias a quien pueda ayudarme...





-------------
Slds desde Cali Colombia



Respuestas:
Publicado por: xavi
Fecha de publicación: 31/Agosto/2023 a las 09:30
Hola,

Premisa 1: Imaginemos que puedes "disponer" de las columnas H en adelante.
Premisa 2: Todas las filas de las columnas H en adelante están vacías.
Premisa 3: partimos de los datos y la situación de tu imagen.

Primer paso: obtener los registros filtrados de las columnas A:B al valor de producto de la celda D2
En la celda H2 utilizamos una función FILTRAR. Esa función nos filtrará los datos de una matriz a un criterio dado (en nuestro caso el que aparezca en D2).
=FILTRAR($A$2:$B$11;$A$2:$A$11=D2)
Aparece unos resultados en forma de matriz derramada.

Segundo paso: del resultado obtenido, tomar solo la columna de la derecha. Utilizamos la función TOMAR por encima de la anterior. La función TOMAR puede quedarse con filas y/o columnas de una matriz. jugando con los argumentos y los signos obtenemos solo la columna de la derecha (mira la ayuda para más información). Así la celda H2 va a contener esta función:
=TOMAR(FILTRAR($A$2:$B$11;$A$2:$A$11=D2);;-1)

Tercer paso: vamos a poner los datos obtenidos en fila en lugar de columna. Utilizamos la función ENFILA:
=ENFILA(TOMAR(FILTRAR($A$2:$B$11;$A$2:$A$11=D2);;-1))

Cuarto paso: manejar el error si no hay valor en la celda D2
=SI.ERROR(ENFILA(TOMAR(FILTRAR($A$2:$B$11;$A$2:$A$11=D2);;-1));"")

Si copias esa función en cada fila, obtendrás la lista de posibles valores para cada valor de la columna D.

Quinto paso: desplegable basado en la lista obtenida
Establecer una validación de datos en la celda F2 de tipo lista. En el cuadro origen se selecciona la celda H2 (ojo, la fijará con $ que debemos quitar). El truco está en añadir el carácter # después de la referencia:
=H2#

Si copias la celda hacia abajo, ya lo tienes.

Mejoras posibles: utilizar tablas en lugar de rangos y añadir desplegable a las celdas de la columna D.

Espero te sirva.

Un saludo




-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: alfare
Fecha de publicación: 31/Agosto/2023 a las 22:04
Hola xavi.
Ante todo, muchas gracias por el tiempo que invirtió para darme una respuesta tan explicita. 
Aplique formula por formula y funciono perfecto. Quede gratamente sorprendido por lo potente que quedo......

Pueden cerrar este hilo y reitero nuevamente mis agradecimientos.



-------------
Slds desde Cali Colombia



Imprimir página | Cerrar ventana