domingo, 29 de enero de 2012

Selecciones encadenadas

En una celda (C4) ponemos la lista de las Comunidades Autónomas de España. Eligiendo una, se debe crear automáticamente la lista de las provincias de esa comunidad (en C5). Luego, escogiendo una provincia, se mostrarán todos sus pueblos (en C6).

El libro tiene 5 hojas. La cuatro imágenes anteriores están tomadas de la hoja "Selección". La hoja "Comunidades" contiene la lista de todas las Comunidades Autónomas.

La hoja "Provincias" contiene las provincias que hay en cada Comunidad Autónoma.

La hoja "Poblaciones" es la más extensa y contiene todos los pueblos de España agrupados por provincias.

Finamente, la hoja "Auxiliar" la usaremos como hoja de apoyo para obtener valores auxiliares.

Necesitamos crear una serie de "nombres". En la hoja "Comunidades", seleccionamos A2:A20 y, en el Cuadro de nombres, escribimos: COMUNIDADES_AUTÓNOMAS

Al rango A2:A20 le hemos asignado el nombre del encabezado de la columna. Tenemos que hacer lo mismo con las columnas de la hoja "Provincias" y, como son muchos los nombres que hay que escribir, se pueden producir errores fácilmente. Para evitarlos, los crearemos de la siguiente manera:

En la hoja "Provincias" seleccionamos A1:A9, accedemos a Fórmulas + Crear desde selección y marcamos Fila superior.

De este modo, no tenemos que escribir la palabra ANDALUCÍA y, lo que es más importante, evitamos errores de escritura. Repitiendo estos pasos con el resto de las columnas de la hoja "Provincias" tendremos la siguiente lista de "nombres":

Hacemos clic en la celda C4 de la hoja "Selección", accedemos a Datos + Validación de datos y ponemos:

Abrimos la lista de la celda C4 y elegimos una comunidad: CASTILLA_Y_LEÓN.

Ahora, en C5 tenemos que poner la lista de provincias de la comunidad escogida. Para ello, hacemos clic en C5, accedemos a Datos + Validación de datos y ponemos:

Abrimos la lista y elegimos una provincia: PALENCIA.

El siguiente paso consiste en poner la lista de los pueblos de PALENCIA en C6. Podríamos utilizar el método anterior, pero esto nos obligaría a crear otros 52 "nombres" con los datos de la hoja "Poblaciones". Vamos a hacerlo de otra forma.

Calculamos el número de pueblos, villas y ciudades que hay en la provincia de ÁLAVA; dicho de otra forma, contamos las filas de la columna A de la hoja "Poblaciones".

En la celda A2 de la hoja "Auxiliar":
=CONTARA(Poblaciones!A:A)-1     [Resultado: 348]

Extendemos la fórmula hasta la columna AZ.

En B4 calculamos el número de la columna en la que se encuentra PALENCIA (la provincia elegida) en la hoja "Poblaciones".

En la celda B4 de la hoja "Auxiliar":
=COINCIDIR(Selección!C5;Poblaciones!A1:AZ1;0)    [Resultado: 38]

Podríamos haber utilizado la función CONTAR.SI de esta manera:

En la celda C4 de la hoja "Auxiliar":
=CONTAR.SI(Poblaciones!$1:$1; "<="&Selección!$C$5)    [Resultado: 38]

Necesitamos saber cuántos pueblos hay en PALENCIA. Puesto que ya hemos obtenido la lista del total de pueblos de cada provincia, será fácil extraer el dato de PALENCIA usando BUSCARH.

En la celda B5 de la hoja "Auxiliar":
=BUSCARH(Selección!$C$5;Auxiliar!$A$1:$AZ$2;2)    [Resultado: 428]

Ahora, crearemos nuestro último "nombre", al que llamaremos Población, que contendrá la lista de los pueblos de PALENCIA que estamos buscando.

Accedemos a Fórmulas + Asignar nombre y creamos el "nombre" siguiente:

Terminamos el ejercicio haciendo clic en la celda C6 de la hoja "Selección", accediendo a Datos + Validación de datos y poniendo los valores:





3 comentarios:

  1. Hola Javier,
    Sólo quiero decirte gracias por actualizar los link de descargas.
    Saludos
    Winny

    ResponderEliminar
  2. Muchas gracias, me ha servido muchisimo!!!!

    ResponderEliminar
  3. Buenas noches eternamente agradecido quien me pueda ayudar, tengo una duda:
    Tengo el contenido del libro 1 Así:
    COD FOLIOS ESTADO
    1.........4.......NUMEROS VIGENTES
    2......... 4.......DESCARTADA
    3......... 2.......NUMEROS VIGENTES
    4......... 9.......DESCARTADA

    Tengo el contenido del libro2, así:
    COD FOLIOS ESTADO
    1..........5.......NUMEROS VIGENTES
    2..........4.......NUMEROS VIGENTES
    3..........2.......NUMEROS VIGENTES
    4..........9.......NUMEROS VIGENTES
    5..........8.......DESCARTADA
    6..........1.......NUMEROS VIGENTES
    7..........1.......NUMEROS VIGENTES
    8..........3.......NUMEROS VIGENTES
    9..........1.......NUMEROS VIGENTES

    Lo que quiero hacer es busque el contenido del libro1 en el libro2 y reemplace en este último libro los FOLIOS y el ESTADO ya que en algunos registros estos cambian, pero que lo haga en VBA, ya que son mas de 500 registros. gracias

    ResponderEliminar