lunes, febrero 23, 2015

Diagrama Gantt con tablas dinámicas

Reconozco que no hay nada novedoso en crear diagramas Gantt con Excel. Este blog aloja varias notas sobre el tema. Las técnicas más comunes para crear un diagrama de Gantt en Excel se basan en formato condicional o en gráficos de barras.

Todos los modelos que he visto hasta ahora, incluyendo los míos, tienen dos inconvenientes:
  • por lo general tienen un solo nivel de actividad, es decir, no se puede descomponer una actividad central en varias sub-tareas;
  • falta de flexibilidad a la hora de agregar o quitar alguna actividad.

El modelo sencillo que muestro en esta nota soluciona estos dos problemas usando tablas dinámicas.

Supongamos que queremos crear un diagrama de Gantt para un proyecto que se compone de 3 etapas. Cada etapa comprende varias actividades.
Empezamos por organizar los datos en una matriz de datos que convertimos en Tabla. Por ejemplo


A partir de esta tabla creamos esta tabla dinámica


Como puede apreciarse los campos de valores están resumidos con distintas funciones (Suma, Max.). Dado que cada registro aparece una única vez en la tabla de valores (existe una única línea para Etapa 1 - Actividad 1), podemos usar cualquier función que resuma valores excepto Contar.

También establecemos formato de fecha para el campo de fechas (Principio).

La ventaja de usar tablas dinámicas es que no necesitamos guardar ningún orden preestablecido al agregar o quitar filas de la tabla de datos. La tabla dinámica siempre estará agrupada jerárquicamente y también tenemos control total del orden.

Ahora tenemos que crear un gráfico dinámico. Los gráficos dinámicos reflejan la tabla dinámica en la cual se basan, no la base de datos de la tabla dinámica


Eligimos el tipo Barra Apilada y obtenemos este resultado


en el cual introduciremos, obviamente, algunas modificaciones. Empezamos por modificar las definiciones de la serie Principio para volverla "invisible" (ver mi prehistórica nota sobre el tema). Luego quitamos los botones y la leyenda. Este video muestra el proceso




A esta altura de los acontecimientos tenemos que corregir dos aspectos del gráfico: el orden de los valores en el eje de las X y el rango de los valores en el eje de las Y (recordemos que estamos usando un gráfico de barras de manera que el eje de las X es el eje vertical y el de las Y es el horizontal)


Si a pesar de las definiciones de Microsoft, el mínimo del eje de valores no es el mínimo del cuadro de valores, tendremos que hacer la corrección manualmente


En cuanto al eje de las categorías, usamos el menú de formato del eje


El último detalle es actualizar la tabla dinámica cada vez que introduzcamos un cambio en la tabla de datos (el gráfico dinámico que la refleja se actualiza junto con la tabla dinámica).
Si queremos evitar tener que hacer la actualización manualmente con cada cambio, podemos crear un evento usando la técnica que muestro en esta nota.

8 comentarios:

  1. Tremendo aporte !!!!!
    Tengo una consulta.
    Quisiera que la barra de control de avance este debajo de la actividad en paralelo es esto posible??
    Como lo haría

    Muchas Gracias

    ResponderBorrar
  2. Tremendo aporte!!!!!!
    muchas gracias por compartir tus conocimientos
    Tengo una duda......
    Quisiera que la barra de control de avance se muestre debajo de la actividad en paralelo es ésto posible y como lo haría

    De nuevo muchas gracias ....

    ResponderBorrar
  3. Si te refieres a el eje de las categorías del gráfico (el que muestra las fechas), no es posibile. Lo único que podrías hacer es crear un gráfico para cada actividad.

    ResponderBorrar
  4. ¿ Existe alguna manera de incluir una eje,linea o similar vertical que señale el día actual (Ahora()?

    ResponderBorrar
  5. No en este modelo donde creamos el diagrama con un gráfico dinámico (un gráfico basado en un tabla dinámica).
    Se puede hacer en un diagrama basado en nuna tabla común de Excel, pero la explicación excede el marco de un coentario. Estaré úblicando una nota sobre el tema más adelante.

    ResponderBorrar
  6. Hola Jorge, gracias por el tremendo aporte. Una consulta: ¿Qué modificaciones habría que hacer para incluir actividades que se repiten periódicamente, por ejemplo, una vez al mes? Saludos!

    ResponderBorrar
  7. Mientras estudio la posibilidad de hacerlo con tablas dinámicas podés fijarte en este post donde muestro como hacerlo con una tabla común.

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.