|
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
|