Si, las estoy haciendo bien pero lo puedo hacer mejor. Intentare ser menos confuso.
Hagamos una copia de todas0.xls, Todas2.xls. Abramos todas2.xls, seleccionemos la hoja Provincias y borremos las columnas D, E, y F. En el nuevo D1 colocamos la siguiente fórmula:
=COINCIDIR(INDICE(MP;$H$1);MPPob;0) Con esta fórmula obtenemos la línea de la primera población de la provincia seleccionada.
En E1 colocamos la siguiente fórmula:
=CONTAR.SI(MPPob;INDICE(MP;$H$1))+COINCIDIR(INDICE(MP;$H$1);MPPob;0)-1 Con esta fórmula obtenemos la línea de la última población de la provincia seleccionada.
Si ampliamos la fórmula a : ="Poblaciones!$a$" & COINCIDIR(INDICE(MP;$H$1);MPPob;0) & ":$E$" & CONTAR.SI(MPPob;INDICE(MP;$H$1))+COINCIDIR(INDICE(MP;$H$1);MPPob;0)-1 tenemos el rango completo de poblaciones de la provincia seleccionada.
Con ="Poblaciones!$d$" & COINCIDIR(INDICE(MP;$H$1);MPPob;0) & ":$d$" & CONTAR.SI(MPPob;INDICE(MP;$H$1))+COINCIDIR(INDICE(MP;$H$1);MPPob;0)-1 tenemos el rango con los nombres de las poblaciones.
Por último si definimos un nombre con el formulón siguiente :=INDIRECTO("Poblaciones!$d$" & COINCIDIR(INDICE(MP;$H$1);MPPob;0) & ":$d$" & CONTAR.SI(MPPob;INDICE(MP;$H$1))+COINCIDIR(INDICE(MP;$H$1);MPPob;0)-1) podemos dar un contenido variable al desplegable de los pueblos sin necesidad de apoyarnos en ninguna celda.
Profesionalmente lo doy por bueno. Todo esto es, sin duda, correcto. Complejo pero correcto. Particularmente yo creo que si se deben evitar fórmulas tan complejas. Hay que apostar por la sencillez.
Empecemos de nuevo. Borremos todas las variables incluidas hasta el momento
Insertemos los siguientes nombres (variables):
Nombre
|
Fórmula
|
Canarias
|
=Provincias!$B$60:$B$61
|
CelVin
|
=INDIRECTO("Provincias!$d$" & PrvSel+1)
|
CelVinCan
|
=INDIRECTO("Provincias!$d$" & PrvSelCan+59)
|
MP
|
=Provincias!$C$2:$C$53
|
MPCan
|
=Provincias!$C$60:$C$61
|
MPP
|
=INDICE(MP;PrvSel)
|
MPPCan
|
=INDICE(MPCan;PrvSelCan)
|
MPPPob
|
=Poblaciones!$E:$E
|
Npob
|
=CONTAR.SI(MPPob;MPP)
|
NpobCan
|
=CONTAR.SI(MPPob;MPPCan)
|
PobPrSel
|
=INDIRECTO("Poblaciones!$D$" & PP & ":$d$" & Npob+PP-1)
|
PobPrSelCan
|
=INDIRECTO("Poblaciones!$D$" & PPCan & ":$d$" & NpobCan+PPCan-1)
|
PP
|
=COINCIDIR(MPP;MPPob;0)
|
PPCan
|
=COINCIDIR(MPPCan;MPPob;0)
|
Provincias
|
=Provincias!$B$2:$B$55
|
PrvSel
|
=Población!$F$2
|
PrvSelCan
|
=Población!$G$2
|
RanPobSel
|
=INDIRECTO("Poblaciones!$a$" & PP & ":$d$" & Npob+PP-1)
|
Insertamos una nueva hoja, la hoja “Población” desde la que seleccionaremos tanto la provincia como la población. Por otra parte incluimos una celda vinculada con el rango de poblaciones de cada provincia, lo que nos permite volver a la población seleccionada con anterioridad al volver a una provincia. Esta vinculación la hago mediante la variable CelVin (CelVinCan para Canarias)
El rango de entrada variable de los pesplegables de las poblaciones se calcula con la variable PobPrSel (Poblaciones de la Provincia Seleccionada. Esta variable, para su calculo, incluye las variables PP (Primera Población de una provincia) y Npob (Número de Poblaciones de una provincia)
El mecanismo que pretendemos seguir es:
Primero elegimos provincia, con el correspondiente desplegable de provincias. Esta desplegable está vinculado con la celda F 2 (variable PrvSel) y su rango de entrada es la variable Provincias. La selección de una provincia modifica tanto el rango de entrada como la celda vinculada del desplegable de poblaciones. La celda vinculada se calcula con la variable CelVin. El rango de entrada variable de los pesplegables de las poblaciones se calcula con la variable PobPrSel (Poblaciones de la Provincia Seleccionada. Esta variable, para su calculo, incluye las variables PP (Primera Población de una provincia) y Npob (Número de Poblaciones de una provincia). Por último, una vez seleccionada la población, presentamos los datos de la población seleccionada, en las celdas B3:D3. Para ello utilizo las variables RanPobSel (Rango Poblaciones Seleccionado, que es similar a PobPrSel) y CelVin.
Para Canarias el concepto es similar, por lo que no me extiendo.
Con esto hemos incluido las dieciocho mil poblaciones y un mecanismo que nos permite seleccionar cómodamente una de ellas.