domingo, diciembre 11, 2011

Gráfico dinámico con lista desplegable - segunda nota

En la nota anterior mostramos un modelo sencillo para crear un gráfico dinámico según el valor elegido de una lista desplegable. Señalamos en esa nota alguna de sus limitaciones: la escalabilidad. Si bien esta palabra no figura en el diccionario de la Real Academia Española, Wikipedia la define como " la capacidad del sistema informático de cambiar su tamaño o configuración para adaptarse a las circunstancias cambiantes”.

Si queremos usar este tipo de reporte a lo largo del tiempo, agregando datos, tenemos que crear un modelo dinámico.
Excel permite hacer esto con facilidad, pero para lograrlo tenemos que organizar nuestro modelo en una forma distinta. El principio básico es separar los datos de los cálculos y de la presentación del reporte (en nuestro caso, el gráfico y la matriz de ventas)



Nuestra base de datos está en la hoja “BD”. El rango de los datos está definido como tabla. Todos los objetos o fórmulas que se refieren a la tabla se adaptan automáticamente a los cambios en los datos de ésta. Esto nos libera de la necesidad de crear rangos dinámicos con DESREF o INDICE.

En la hoja “cálculos” creamos nuestro “motor”. Este consiste en una tabla dinámica que resume los datos de la base de datos



La hoja reporte resume los datos en una tabla que nos servirá también para crear el gráfico dinámico



En la celda C3 ponemos una lista desplegable con los nombres de los vendedores; en la celda C4 una lista desplegable con los años disponibles. Los valores de estas listas están definidos con nombres que se refieren a rangos en la hoja “auxiliar”.

Para poner los datos de la tabla en forma dinámica usamos la función IMPORTARDATOSDINAMICOS,



Para crear la función con facilidad, definimos en Opciones de la tabla dinámica la opción “Generar GetPivotData”



Este video muestra el funcionamiento del modelo



Un último toque. Las tablas dinámicas no se actualizan automáticamente. En esta nota muestro una técnica para lograr la actualización automática de tablas dinámicas.

El archivo con el modelo se puede descargar aquí.

sábado, diciembre 10, 2011

Gráficos dinámicos según valor de lista desplegable

Los más memoriosos lectores de este blog recordarán seguramente aquella nota que describía la técnica para crear un gráfico interactivo según el valor de la celda activa (la nota completa aparece en mi blog sobre gráficos, actualmente inactivo). También recordarán que esa técnica no funciona en las versiones posteriores a Excel 2003.

En esta nota mostraré una técnica que funciona con todas las versiones de Excel. El modelo es distinto y se basa en los valores de una lista desplegable. En esta nota mostraré un modelo sencillo y señalaremos sus limitaciones. En las próximas notas veremos otras soluciones que superaran esas limitaciones.

Y yendo al grano, supongamos esta matriz que muestra las ventas por trimestres de los vendedores de una firma



Queremos crear un modelo que permita representar en gráfico las ventas por vendedor, eligiéndolos de una lista desplegable. Las técnicas para lograr esto ya han sido expuestas en este blog en el pasado, por lo que haremos una explicación sucinta.

Lo que queremos lograr es esto:



Lo primero es crear un nombre que se refiera al rango que contiene los nombres de los vendedores. Lo hacemos fácilmente usando la opción “crear desde la selección” del grupo “nombres definidos” en el menú “Fórmulas”



Creamos la lista desplegable en la celda C5 y definimos el nombre “grfTitulo” que se refiere a esta celda. Para crearlo usamos el cuadro de nombres (seleccionamos al celda, escribimos el nombre en el cuadro y apretamos Enter)



Ahora definimos un nombre para cada uno de los rangos que contienen las ventas de los distintos vendedores. Esto también lo haremos usando la opción “crear desde la selección”



Ahora podemos usar los nombres de los vendedores para definir los rangos de los valores que queremos ver en el gráfico. Pero aquí se nos presenta un problema. Dado que los espacios no están permitidos en los nombres definidos, Excel crea los nombres poniendo un “_” (underline) entre el nombre y el apellido. El valor que obtenemos de la lista desplegable no contiene el guión. La solución es transformar el valor obtenido de la lista desplegable agregándole el guión. Esto la hacemos con la función SUSTITUIR en una celda oculta (en este ejemplo en la celda A5)



El próximo paso es crear un gráfico, de líneas en nuestro caso, usando la primer fila de la tabla



Para que nuestro gráfico sea dinámico creamos este nombre definido

grfSeriesX =INDIRECTO(reporte!$A$5)

La función INDIRECTO interpreta el texto en la celda A5 y lo convierte en el rango que hemos definido previamente.

Ahora reemplazamos los rangos en la función SERIES del gráfico de la siguiente manera



Para ver los nombres definidos apretamos F3.

Nuestro modelo funciona de la siguiente manera:


  • Elegimos un valor de la lista deplegable
  • El valor es transformado en la celda A5
  • La función INDIRECTO en el nombre grfSeriesX lo transforma en el rango del vendedor elegido
  • El nombre grfTitulo pone el rango que contiene el nombre del vendedor de manera que aparezca en el título del gráfico.


Este modelo tiene varias limitaciones; la más grave es que si agregamos trimestres y/o vendedores tenemos que modificar los nombres definidos. Podemos, por supuesto, crear nombres dinámicos con DESREF o INDICE como ya hemos mostrado en varias oportunidades en este blog. Pero hay soluciones mejores que mostraremos en las próximas notas.

El archivo con el ejemplo se puede descargar aquí.

domingo, noviembre 13, 2011

Planificador de Proyectos JLD

Un mes después del primer anuncio (y vaya aquí mi agradecimiento a los lectores que han colaborado) publico mi Planificador de Tareas JLD.

El modelo permite programar las tareas de un proyecto sencillo, establecer dependencias entre ellas y presentarlas en un diagrama de Gantt
.
Las tareas son introducidas en la hoja de tareas




  • Las fechas y la duración son calculadas automáticamente en base a los parámetros introducidos
  • La fecha de finalización es calculada automáticamente cuando se introducen la fecha de comienzo y la duración
  • La fecha de comienzo es calculada automáticamente cuando se introducen la fecha de finalización y la duración
  • La duración es calculada automáticamente cuando se introducen las fechas de comienzo y finalización
  • Al establecerse una dependencia la fecha de comienzo es calculada de acuerdo a la fecha de finalización de la tarea precedente

La forma en que las fechas son calculadas se puede establecer en la hoja Definiciones




  • tomar en cuenta sólo días hábiles o días corridos
  • incluir la fecha de comienzo en la cuenta de los días o no
  • definir las fechas de los feriados (si no se definen sólo fines de semana serán descontados de la cuenta de días hábiles)

La hoja del diagrama de Gantt muestra el desarrollo del proyecto en forma gráfico y también estadísticas del proyecto (fechas de comienzo y finalización del proyecto, total de días y total de días hábiles).



La hoja de control permite ver el estado de cada una de las tareas



El costo del modelo es de 7.50 Euros (o el equivalente en otras monedas), y ha sido desarrollado en dos versiones que pueden descargar de estos enlaces




Las hojas y los códigos del modelo están protegidos con contraseñas. Una guía del modelo, que incluye la contraseña, puede descargarse con un costo adicional de 7.50 Euros.





El acceso a las fórmulas, hojas ocultas y códigos permite modificar el modelo para adaptarlo a las necesidades del usuario o para estudiar cómo ha sido construido.