martes, 31 de enero de 2012

Tablas para encadenar listas de longitud variable

En la entrada anterior hemos visto cómo encadenar listas cuya longitud no cambia nunca. Los "nombres" creados son de tamaño fijo.

En el caso de listas que cambian a lo largo del tiempo, los "nombres" tendrán que ser dinámicos; es decir, su tamaño deberá cambiar y adaptarse a la nueva longitud de la lista. Esto suele hacerse, normalmente, usando la función DESREF. Pero, en ocasiones, es mejor utilizar tablas, como se comprobará en este ejercicio.

Disponemos del listado de corredores de seis equipos ciclistas. Estas listas cambian de nombres cada temporada así como de número de corredores. Éste es su aspecto actual:

En las celdas C4 y C5 de la hoja "Ciclista" pondremos dos listas. En la primera, elegiremos un equipo y, en la segunda, escogeremos un corredor de ese equipo. Naturalmente, la segunda lista (la de la celda C5) será la correspondiente al equipo elegido en C4.

Es muy fácil crear la primera lista. Hacemos clic en la celda C4 de la hoja "Ciclista", accedemos a Datos + Validación de datos y ponemos estos valores:

A continuación, crearemos 6 "nombres" para las 6 listas de los equipos ciclistas. Serán nombres dinámicos ya que prevemos que las listas cambien en cualquier momento.

Accediendo a Fórmulas + Asignar nombre, creamos los siguientes:

Los "nombres" no admiten espacios; por esa razón, debemos eliminarlos o sustituirlos por guiones bajos.

Ahora, en C5, pondremos la lista de los ciclistas del equipo seleccionado. Hacemos clic en C5, accedemos a Datos + Validación de datos y dejamos estos datos:

Excel nos devuelve el siguiente mensaje de error:

El argumento de la función INDIRECTO debe ser una referencia a una celda o rango que no sea una fórmula. De ahí el mensaje de error.

Si en vez de utilizar DESREF creamos "tablas" ("listas" en la antigua terminología de Excel), la cosa funcionará perfectamente, ya que INDIRECTO sí admite este tipo de argumento.

Comencemos borrando todos los "nombres" que hemos creado. Para hacerlo, accedemos a Fórmulas + Administrador de nombres y los borramos, uno a uno, con el botón Eliminar.

En la hoja "Listados", seleccionamos B2:B18 y vamos a Insertar + Tabla. Excel muestra el consiguiente cuadro de diálogo en el que debemos marcar la opción "La tabla tiene encabezados".

En la ficha Herramientas de tabla + Diseño, debemos cambiar el nombre (Tabla1), que, por defecto, Excel ha asignado a la tabla, por el de Andalucía.

Repetimos estos pasos con el resto de las columnas de la hoja "Listados" pero teniendo la precaución de no dejar espacios en blanco en los nombres de las tablas. Si accedemos a Fórmulas + Administración de nombres, observaremos que el icono asignado a las "tablas" es distinto del que Excel asigna a los "nombres" normales.

En la celda C5 de la hoja "Ciclista", ponemos la lista de ciclistas accediendo a Datos + Validación de datos:

Hemos eliminado los espacios en blanco de C4 para que coincidan con los nombres que hemos dado a las "tablas". La nueva lista funciona correctamente; ya no hay errores.

Podemos añadir nuevos ciclistas al final de cualquier lista y, automáticamente, aparecerán en el listado de la celda C5. Por el contrario, si queremos eliminar un ciclista no debemos borrarlo con la tecla Supr. El modo correcto para eliminar elementos de una tabla consiste en seleccionarlos y, en el menú contextual, elegir Eliminar + Filas de la tabla.

Nota: El método descrito no se puede utilizar en Excel 2003. El ejemplo para esta versión se ha resuelto por el método empleado en el ejercicio Selecciones encadenadas.




No hay comentarios:

Publicar un comentario