Color | 1ªFranja | 2ªFranja | |
Marron | 10 | Marron | Negro |
Rojo | 12 | Marron | Rojo |
Naranja | 15 | Marron | Verde |
Amarilla | 18 | Marron | Gris |
Verde | 22 | Rojo | Rojo |
Azul | 27 | Rojo | Violeta |
Gris | 33 | Naranja | Naranja |
39 | Naranja | Blanca | |
47 | Amarilla | Violeta | |
51 | Verde | Marron | |
56 | Verde | Azul | |
68 | Azul | Gris | |
82 | Gris | Rojo |
Con dos desplegables puedo seleccionar el primer color con el primer desplegable y el segundo color con el segundo desplegable.
El único problema es que no todas las combinaciones posibles se fabrican comercialmente. Solo se pueden dar unas pocas combinaciones, según la tabla anterior. Algunos colores de la primera banda pueden combinar con catro colres, otros con dos, etc...
¿Puedo variar los item del segundo desplegable en función del color del primero?
¿Como vario los item del segundo desplegable en función del color del primero?Por supuesto, se puede, pero hay que utilizar rangos con nombre.
- El primer desplegable no tiene problema, se trata como cualquier otro, no tiene nada en especial. Por tanto indicamos el rango de entrada (Aux!$J$15:$J$21) y la celda a la que está vinculado (Aux!$C$14)
- Antes de empezar a trabajar con el segundo desplegable hay que pensar como vamos a conocer el rango de los segundos colores. Podría hacerlo a mano, en el ejemplo hay pocas líneas y, además, no varían con el tiempo, pero si hubiese una gran cantidad de líneas sería francamente complicado.
- En este caso, se puede hacer de varias maneras, utilizo primero la función INDIRECTO para recuperar el nombre del color, en la celda vinculada al desplegable esta la posición del color dentro de la lista de colores. =INDIRECTO("j" & Aux!$C$14+14)
- Cuento el número de veces que aparece el color en la segunda lista, la lista de los dos colores con =CONTAR.SI($L$15:$L$27;$A$16)
- Hasta el momento podemos utilizar nombres o rangos tal cual los escribimos habitualmente.
- Encontramos la primera aparición, en la segunda lista, del color deseado. =COINCIDIR($A$16;$L$15:$L$27;0)+14
- Generamos, como texto, el rango en el que se encuentran los segundos colores. =("Aux!$m$" &C16 & ":$m$" & C16+B16-1)
- Entramos en administrador de nombres y añadimos un nombre, en este caso SColor y la función indirecto, con la dirección generada en el paso anterior. =INDIRECTO(Aux!$D$16)
- Aparece otro pequeño problema, cada color combina con un número de colores distinto. Si la celda vinculada al segundo desplegable tiene un número superior al de colores del desplegable nos provoca un error.
- La solución encontrada es vincular el segundo desplegable a una celda distinta por color del primer desplegable.
- Con el administrador de nombres creamos una variable (CV).=INDIRECTO("Aux!h" &Aux!$C$14+14)
- El nombre del segundo color se obtiene con la función =INDICE(SColor;CV)