Escolar Documentos
Profissional Documentos
Cultura Documentos
Excel Parte 1
El diagrama de Gantt es una excelente herramienta para visualizar la
secuencia de actividades de un proyecto. Existen herramientas
especializadas como Microsoft Project, pero en ms de una ocasin me
he encontrado en una situacin en la que no se tiene instalado Microsoft
Project y an as es necesario compartir la informacin con otra
persona. Una alternativa es utilizar Excel y en esta primera parte del
artculo iniciaremos con el desarrollo de un ejemplo:
Haz clic sobre Aceptar y se habr creado la primer serie de datos. Solo
necesitamos modificar las etiquetas del eje horizontal, por lo que debers
hacer clic sobre el botn Editar en la seccin Etiquetas del eje horizontal:
Para esta segunda serie tambin ser necesario editar las etiquetas del
eje horizontal y seleccionar los datos de la columna Actividades tal como
lo hicimos para la primera serie. Al finalizar tendrs un grfico como el
siguiente:
Ahora remueve las leyendas del grfico para dar mayor espacio a las
barras:
Slo nos resta adecuar el eje horizontal para no tener tanto espacio libre
a la izquierda de las barras. La primera actividad en iniciar es la actividad
A y para colocar dicha barra justo al inicio del eje debemos obtener el
En el pasado he tocado el tema de construir diagramas Gantt con Excel. Podemos usar,
bsicamente, dos tcnicas: grficas de barras apiladas o formato condicional (tambin
pueden
consultar
mi
nota
sobre diagrama
Gantt
dinmico).
Las tcnicas que muestro en la nota no contemplan el caso en que una tarea se repite a lo
largo del proyecto. En esta nota mostrar una tcnica sencilla para crear ese tipo de
diagrama
de
Gantt.
Nuestro proyecto comprende cinco tareas, algunas de las cuales se repiten en la segunda
etapa.
Esto es lo que queremos obtener:
Empezamos por construir nuestro diagrama que mostrar la primera etapa del proyecto,
seleccionando el rango A2:C7 en nuestro ejemplo e insertando un grfico de tipo barra
apilada
En Excel 2010 obtenemos este resultado, as que tendremos que hacer algunas
modificaciones:
Agregamos la serie Comienzo (el rango B3:B7) y la movemos al primer lugar (usando la
flecha indicada en la imagen)
Tambin el eje de los valores (horizontal) requiere nuestra atencin. Cambiamos el valor
mnimo del eje de manera que coincida con la primer fecha del proyecto
El resultado es el siguiente
Para poder representar la segunda etapa de la tarea tendremos que crear una columna
auxiliar. Podemos incluirla en la tabla, pero mi inclinacin personal es ocultarla ya que no
aporta ninguna informacin til al usuario.
Insertamos una columna a la izquierda de la tabla (o mejor an dos, Ay B) y creamos la
columna auxiliar Intervalo
Intervalo cuenta los das transcurridos entre el final de la primer etapa de la tarea y el
comienzo de la segunda etapa.
Ahora agregamos dos nueva series a la grfica: Intervalo y Duracin (de la etapa 2)
Dado que vamos a ocultar la columna A, tenemos que cambiar la forma en que Excel
representa los datos de columna ocultas apretando el botn Celdas ocultas y vacas y
marcando Mostrar datos en filas
Ahora tenemos que volver la serie Intervalos invisible, tal como hicimos con la serie
Comienzo, cambiando las definiciones de relleno y borde
El ltimo detalle que nos queda son los valores 00/01/1900 (rango I5:I7), Esto se debe a
que los valores son ceros, pero el formato es de fecha. Lo que hacemos es cambiar
levemente el formato usando formato personalizado dd/mm/aa;; (agregamos dos veces
punto y coma)
El resultado final
Todo quien se haya ocupado alguna vez de proyectos sabe qu es un diagrama Gantt. De
acuerdo a Wikipedia: el diagrama de Gantt es una popular herramienta grfica cuyo
lo
largo
de
un
tiempo
total
determinado.
Desde su introduccin los diagramas de Gantt se han convertido en una herramienta bsica
en la direccin de proyectos de todo tipo, con la finalidad de representar las diferentes
fases, tareas y actividades programadas como parte de un proyecto o para mostrar una
lnea
de
tiempo
en
las
diferentes
actividades.
Excel no cuenta con una herramienta propia para desarrollar diagramas Gant. Quien quiera
desarrollar un diagrama Gantt profesional, con interdependencias entre actividades y
dems elementos, debe usar una herramienta apropiada como MS Project, por ejemplo.
Pero si nuestras aspiraciones son menores y podemos contentarnos con un diagrama Gantt
sencillo,
podremos
hacerlo
con
Excel.
Hay ms de una forma de crear un diagrama Gantt en Excel. Los ejemplos de esta nota se
encuentran
en
este
cuaderno.
condicional.
pasos
son
los
siguientes:
1 Creamos una tabla con los datos (actividades, fechas de inicio y duracin)
2 Diseamos un rango que contenga el diagrama Gantt. En nuestro ejemplo, la tabla con
los datos ocupa el rango A1:D8. El rango para el diagrama ocupa el rango F1:S8. El rango
F2:F8 contiene los nombres de las actividades; el rango G1:S1 contiene las fechas por
semana (la primer celda se refiera a la celda B2, las restantes son el resultado de sumar 7
a
la
celda
de
la
izquierda).
frmulas:
para
la
primera
condicin
(color
azul)=Y(G$1>=$B2,G$1<$D2,RESIDUO(FILA(),2)=0)
para
la
segunda
condicin
(color
mora)
=Y(G$1>=$B2,G$1<$D2,RESIDUO(FILA(),2)=1)
El
efecto
final
es:
Otra alternativa es utilizar los grficos de Excel para representar el diagrama Gantt. Para
lograr esto usaremos el grfico de tipo barras. Esta tcnica requiere usar algunos "trucos".
Los
1
pasos
Usamos
la
son
misma
tabla
los
de
datos
siguientes:
del
ejemplo
anterior
seleccionamos
el
tipo
"Barras"
subtipo
"barra
apilada"
El
primer
truco
consiste
en
hacer
desaparecer
la
serie
"comienzo"
de
"desaparecer"
la
serie
la
barra.
seleccionamos
Tambin
Borde--ninguno,
seleccionamos
la
rea--ninguna.
leyenda
la
Esto
har
borramos
apropiado.
Como
El
pueden
formato
ver,
podemos
final
de
introducir
nuestro
los
valores
diagrama
en
formato
es
el
de
fechas.
siguiente
Como pueden ver, este formato es mucho ms preciso que el anterior que estaba basado
en formato condicional.
En los albores de este blog publiqu una nota sobre cmo construir un diagrama Gantt con
Excel. Mostramos all dos posibilidades: usando formato condicional o usando grficos.
En esta nota mostraremos como construir un diagrama de Gantt dinmico que nos permite
mostrar
en
pantalla
tareas
que
se
extienden
por
perodos
muy
largos.
Cuando construimos el diagrama de Gantt en Excel con formato condicional, usamos una
fila para cada tarea y una celda para cada unidad de tiempo. El modelo general consiste en
usar la primer columna para definir las tareas, la segunda para la fecha de iniciacin, la
tercera para la duracin, la cuarta para la fecha de finalizacin y a partir de la quinta
columna usamos cada celda para representar una unidad de tiempo. Este es un ejemplo
clsico
Las barras de color del diagrama las logramos usando estas frmulas de formato
condicional:
para
para
las
las
filas
filas
pares
=Y($C3=F$2,$E3=F$2,RESIDUO(FILA(),2)=0)
impares
=Y($C3=F$2,$E3;=F$2,RESIDUO(FILA(),2)=1)
Para construir la escala del tiempo (en la fila 2) ponemos en la celda F2 esta frmula
=MIN(C3:C6)+7
que calcula la primer fecha ms una semana de la primer tarea a realizar. En la celda G2
ponemos
"=F2+7"
as
sucesivamente.
resolucin
semanal
para
mostrar
las
tareas.
Podemos solucionar este problema usando una resolucin diaria. En total necesitamos 90
das
(la
ltima
fecha
es
el
26/03/10).
Si bien esto resuelve el problema, nos crea uno nuevo, el diagrama excede los lmites de la
pantalla
La solucin ideal es, por lo tanto, trabajar con una resolucin diaria pero que no exceda el
ancho
de
la
pantalla.
En la celda E3 calculamos la primer fecha del proyecto usando la funcin MIN. En la celda
F5 creamos una referencia a la celda E3; en la celda G5 ponemos "=F5+1" y as
sucesivamente
para
crear
la
escala
de
tiempo.
En la celda F6 creamos una referencia a la celda F5, seleccionamos el rango que comprende
la semana (F6:L6) y aplicamos "combinar y centrar"
Cambiamos el ancho de las columnas de la seleccin a 0.6, quitamos los bordes interiores y
obtenemos este resultado
Ntese que la fecha 01/01/10 parece ocupar una columna pero en realidad comprende 7
columnas,
una
para
cada
da
de
la
semana.
Volvemos a aplicar esta tcnica a cada grupo de siete columnas hasta obtener este
resultado
Hemos mejorado en buena medida nuestro diagrama, pero an nos queda una cuestin por
solucionar.
Nuestro diagrama cubre ahora 13 semanas, con resolucin diaria. Pero, que pasa si una
tarea
se
extienda
por
ms
de
de
90
das
del
inicio
del
proyecto?
Esto lo solucionaremos creando un diagrama Gantt dinmico con frmulas sencillas y una
barra
de
Introducimos
desplazamiento
estos
de
cambios
la
barra
en
de
nuestro
formularios.
modelo:
1 insertamos una columna a la izquierda de la hoja (la tabla del diagrama empieza ahora
en
la
columna
C).
Ntese que vinculamos el control con la celda A2. Esto har que cuando movemos el cursor
de la barra, la fecha en la celda G3 se va incrementando y as el resto de las celdas.
Diagrama de Gantt
13 ENERO, 2014
PRESENTACIN - PRODUCTIVIDAD
Para construir este Excel os vamos a mostrar los pasos necesarios que hay que dar
y cual es la lgica subyacente al clculo de las barras.
Inicio
Este diagrama de Gantt en Excel no tiene nada de VBA por detrs para que sea
mucho ms fcil de mantener y poder actualizar. Para dibujar las barras
obtendremos un valor que nos indique en qu situacin se encuentra la celda
respecto de los datos aportados de (duracin, inicio, fin y % de trabajo realizado).
Estructura
Para crear la lgica para dibujar las lneas hemos pensado lo siguiente:
En cada fila (ejemplo para la fila 9 Fase 1) hemos decidido dar un valor de 0, 1 2
a cada celda en funcin de la siguientes variables:
(fila 5),
Duracin de la fase
Comienzo de la fase
Final de la fase
% Cumplimiento (se supone que puedes ir calculando el grado de avance)
daremos el valor de 0
Lgica 1: Si la fecha se encuentra entre el comienzo y el final de la fase
daremos el valor de 1
Lgica 2: Si la fecha se encuentre entre el comienzo de la fase y la fecha de
avance daremos el valor de 2. (La fecha de avance se calcula como Fecha
de Inicio+Duracin Fase*%Cumplimento)
Para poder hacer estos clculos tenemos que hacer una funcin anidada un poco
compleja que hace esto:
=SI( lgica 2; 2; SI( lgica 1; 1; 0) )
En un lenguaje humano esta lgica sera:
=SI( fecha>=inicio y fecha<=fecha avance entonces =2;SI(fecha>=inicio y fecha
Que tampoco es super fcil de entender pero algo ms
Traducido a un lenguaje de Excel
>DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!--DVFMTSC--><!--DVFMTSC->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->>>size:14px;line<!<!<!--DVFMTSC-><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!--DVFMTSC-><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->>DVFMTSC<!<!-DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!-DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC->>>height:1.5em;">=SI(</span><span<!<!<!--DVFMTSC--><!--DVFMTSC->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!--DVFMTSC--><!--DVFMTSC->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->>DVFMTSC<!<!--DVFMTSC--><!-DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!--DVFMTSC--><!-DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->>> styl
e="color:#ff6600;">Y(G5>=D9;G5<D9+C9*F9)</span><span<!<!<!--DVFMTSC--><!-DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!--DVFMTSC--><!-DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->>DVFMTSC<!<!--DVFMTSC-><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!--DVFMTSC-><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->>> style="font<!<!<!-DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!-DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->>DVFMTSC<!
<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!-DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC->>>size:14px;line<!<!<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC-><!--DVFMTSC-->><!<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC-><!--DVFMTSC-->>DVFMTSC<!<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!-DVFMTSC--><!--DVFMTSC-->><!<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!-DVFMTSC--><!--DVFMTSC-->>>height:1.5em;">;2;SI(</span><span<!<!<!-DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!-DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->>DVFMTSC<!
<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!-DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->>> styl
e="color:#3366ff;">Y(G5>=D9;G5<E9)</span><span<!<!<!--DVFMTSC--><!--DVFMTSC->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!--DVFMTSC--><!--DVFMTSC->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->>DVFMTSC<!<!--DVFMTSC--><!-DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!--DVFMTSC--><!-DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->>> style="font<!<!<!-DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!-DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->>DVFMTSC<!
<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!-DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC->>>size:14px;line<!<!<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC-><!--DVFMTSC-->><!<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC-><!--DVFMTSC-->>DVFMTSC<!<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!-DVFMTSC--><!--DVFMTSC-->><!<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!-DVFMTSC--><!--DVFMTSC-->>>height:1.5em;">;1;0))</span>
'con<!<!<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC->><!<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC->>DVFMTSC<!<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!-DVFMTSC-->><!<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!-DVFMTSC-->>> las<!<!<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC-><!--DVFMTSC-->><!<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC-><!--DVFMTSC-->>DVFMTSC<!<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!-DVFMTSC--><!--DVFMTSC-->><!<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!-DVFMTSC--><!--DVFMTSC-->>> referencias<!<!<!--DVFMTSC--><!--DVFMTSC->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!--DVFMTSC--><!--DVFMTSC->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->>DVFMTSC<!<!--DVFMTSC--><!-DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!--DVFMTSC--><!-DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->>> a<!<!<!--DVFMTSC--><!--
DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!--DVFMTSC--><!-DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->>DVFMTSC<!<!--DVFMTSC-><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!--DVFMTSC-><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->>> celdas<!<!<!-DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!-DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->>DVFMTSC<!
<!--DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->><!<!-DVFMTSC--><!--DVFMTSC-->DVFMTSC<!--DVFMTSC--><!--DVFMTSC-->>> fijas
=SI(Y(G$5>=$D9;G$5<$D9+$C9*$F9);2;SI(Y(G$5>=$D9;G$5<$E9);1;0))
En el fondo esto es tan sencillo como anidar 2 funciones SI. En rojo hemos pintado
la lgica 2 y en azl hemos pintado la lgica 1 y hemos quitado los smbolos de $
(smbolo para fijar celdas a una columna y/o fila) para su mayor comprensin.
Una vez creada esta lgica el ejercicio quedara as:
Como podemos ver en la imagen anterior, hemos creado una matriz con los
valores 0, 1 y 2. Al modificar los valores de la iquierda de fechas, duracin o %
Cumplimiento veremos como se van cambiando las frmulas.
Formato inicial
Lo primero que haremos ser :
ajustar el tamao de las columnas donde irn las barras del diagrama de
Gantt,
luego aplicaremos formato a la fila de total,
despus a la cabecera y al fondo de las filas superiores,
Donde hay ceros que la fuente se ponga en blanco (para que no se vea el
Para aadir este formato condicional hacemos (deberemos tener elegido nuestro
rango de aplicacin):
Pestaa Inicio >> Formato condicional >> Nueva regla >> Aplicar formato a
celdas que contengan
Una vez seleccionado elegimos la opcin de que el valor de la celda sea igual a
[ponemos nuestro nmero] y formateamos:
Deberemos crear tres reglas para poder aplicar los formatos de colores y crear las
barras.
El resultado ser el siguiente:
En la primera imagen de este artculo veamos algunas mejoras que puede aportar
un montn de valor a nuestro grfico de Gantt y que prcticamente no cuestan
nada.
En la imagen anterior hay cuatro recuadros rojos que aportan las siguientes
funcionalidades y que describiremos sucintamente en este apartado:
Primer recuadro: Contiene una caja llamada Intervalo. Esto nos permite
introducir un nmero de das para las fechas de nuestro diagrama. As, si
queremos ver nuestro diagrama en semanas escribiremos 7 o cada dos das
escribiremos 2
Segundo recuadro: Starting date nos permite elegir en qu fecha
general.
Recuadro vertical: contiene dos elementos. Lo primero es que mediante un
formato condicional se seala la fecha del da en el que estamos. Esto se
consigue sabiendo le fecha del da de hoy mediante la funcin HOY() y un
formato condicional asociado a la fila de las fechas. Lo segundo es la marca
divisoria que seala los lunes. Esta marca se consigue de manera similar a
la anterior pero con la funcin DIASEM.
Se pueden aadir muchas mejoras (no dudes en sugerir todo lo que se te ocurra e
intentaremos plasmarlo), mientras tanto os dejo en este link el archivo descargable
para que puedas practicar y ver cmo se han ido realizando todas las partes de
este diagrama de Gantt.