En esta nota mostrare cómo crear listas desplegables dependientes en Calc de Open Office. Es un uso particular del módulo de "Validación de datos". La validación de datos es útil, para uno mismo, para tus propias hojas, y es esencial cuando compartimos las hojas de cálculo con otras personas.
Como seguramente habrás podido observar y sufrido, gran parte de los errores en las fórmulas, funciones o en los modelos, tiene su origen en la introducción, en la celda que sirve de operando, de un el valor o de una la naturaleza errónea para su objeto. Cuando ocurre, añoramos el que no tuvieses un filtro para evitar estos fallos, y que el ordenador no produjese alguna descarga correctora.
El comando de validación de datos de Calc te permite establecer ciertas reglas que dictan lo que puede ser introducido en una celda. Por ejemplo, puede que te interese limitar la entrada de datos en una celda a que sean números enteros entre 10 y 18. Si el usuario hace una entrada inválida, Calc puede entonces mostrar un mensaje de aviso, con una ayuda o con las instrucciones.
Este comando está en el menú de Datos:
Este comando, da mucho juego, y hay muchas posibilidades, en esta nota sólo trataremos el uso de la validación de datos, para restringir las entradas a una lista de valores concretos y específicos que están introducidos en unas celdas, configurando una serie de listas. En estos casos debemos de utilizar la opción de "Intervalo de celdas". Este comando supone una alternativa muy útil al uso de los controles de formularios, de las distas autodeplegables, y que no suponen ni macros ni programación para su uso.
Vemos el contexto de un caso en el que vamos a utilizar este procedimiento.
Supongamos que somos una agencia de guías de montaña, y organizamos excursiones en diferentes zonas del Pirineo. (el eterno binomio de zonas-vendedores, familias- productos, etc. Una clasificación de doble entrada). Y queremos que cada vez que elegimos una zona nos aparece una lista desplegable que mostrara solo y exclusivamente las excursiones de esa zona. Es decir una lista desplegable en función del valor fijado por otra lista desplegable (de aquí el nombre de la nota de hoy listas desplegables dependientes).
Las excursiones de las diferentes zonas de excursiones de nuestra empresa aparecen en esta hoja en rangos verticales. Las excursiones están en las celdas sombreadas con amarillo y que le he puesto el nombre de "Excursiones".
Bueno, ¡pues vamos a ello¡
Paso 1:
Empezamos creando nombres de rangos. El primero será "Zonas", y que agrupara las zonas de excursiones, celdas B16:I16, un rango en horizontal. Después crearemos unos nombres de rangos que coincidan con los nombre de las zonas. Es importante que se llamen igual. El rango solo hará referencia a la primera celda de excursiones. Hay dos opciones, o creamos un nombre que se asigne a un grupo de celdas fijas, o lo hacemos de forma dinámica, y permitimos que la lista de excursiones pueda ser ampliada o modificada. Esta segunda opción es la que vamos a explicar.
Para dar los nombres utilizaremos la opción de Nombres\Crear… del menú de "Insertar". Señalamos las celdas que constituyen las dos primeras filas de la tabla de datos, las zonas y la primera excursión, el nombre del rango y la celda a la que hará referencia.
De esta forma el rango AISA= $B$17, SALAZAR=$C$17, etc.
Paso 2:
Creamos la celda de introducción del datos de ZONA. Nos posicionamos en la celda C7, y la combinamos con la celda D7, y le datos el nombre de "mizona", para que de esta forma podamos trasladar estas celdas a cualquier sitio de la hoja, y que todas las fórmulas que vayamos utilizando necesiten de este origen haga referencia al nombre.
Seguidamente, y estando en la celda C7, daremos las instrucciones de validación de datos, eligiendo "Datos\Validez…", eligiendo "Intervalo de celdas", y en Origen marcando el rango "Zonas".
Ya tenemos la primera lista desplegable. Ahora nos queda que Calc nos muestre una lista desplegable que dependa de la zona elegida.
Paso 3:
Nos posicionamos en la celda C8, la combinamos con las celdas C8:E8, para que quepa todo el nombre. Para que la lista cambie en función de la zona elegida, crearemos un rango dinámico, que cambie con "mizona", le llamaremos "miexcursio", y hará referencia a esta fórmula:
= DESREF(INDIRECTO(mizona);0;0; CONTARA(DESREF(INDIRECTO(mizona);0;0;FILAS(Excursiones);1));1)
Repetimos los mismos pasos para crear la validación pero ahora en "Origen" pondremos el nombre de "miexcursio". Y ya debería funcionar.
Algunas aclaraciones:
- El uso de los nombres de los rangos, no es un capricho o por hacerme el virtuoso. Nos permite, trasladar la tabla de datos, de zonas y excursiones a otras hojas del libro, sino la validación exige que este en la misma hoja o que haga referencia al nombre de la hoja que contenga la lista de valores.
las tripas de la fórmula de "miexcursio": = DESREF(INDIRECTO(mizona);0;0; CONTARA(DESREF(INDIRECTO(mizona);0;0;FILAS(Excursiones);1));1)- Utilizamos una combinación de las funciones DESREF, INDIRECTO, CONTARA y FILAS.
- Con DESREF encapsulamos un grupo de celdas que comenzaran en la celda que marque la zona elegida, por eso le hemos puesto un nombre, y esa dirección se sabrá gracias a la función INDIRECTO, que nos dará una referencia absoluta, y el vértice inicial de la matriz de celdas a encapsular.
- Para determinar el número de celdas que conformará esa lista utilizamos la función CONTARA, para que cuente valores alfanuméricos, que hay en las celdas consecutivas hacia debajo de esa zona. Volvemos a utilizar la función DESREF, y le marcamos un nuevo encapsulado de celdas, formado por la primera excursión de la zona y el número de FILAS que contiene el rango "Excursiones".
- Utilizamos una combinación de las funciones DESREF, INDIRECTO, CONTARA y FILAS.
Como siempre espero vuestros comentarios, y el fichero ejemplo se puede descargar en la web de FlashForward-Financiero en: Listas desplegables dependientes.ods
No hay comentarios:
Publicar un comentario
Puedes hacer un comentario