martes, agosto 29, 2006

Diagramas Gantt con Excel

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 gráfica cuyo objetivo es el de mostrar el tiempo de dedicación previsto para diferentes tareas o actividades a lo largo de un tiempo total determinado.

Desde su introducción los diagramas de Gantt se han convertido en una herramienta básica en la dirección 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 línea 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 demás 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 más de una forma de crear un diagrama Gantt en Excel. Los ejemplos de esta nota se encuentran en este cuaderno.

La más sencilla es ubicando los datos en un rango y luego crear el diagrama usando formato condicional.

Los pasos son los siguientes:

1 – Creamos una tabla con los datos (actividades, fechas de inicio y duración)




2 – Diseñamos 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).

3 – Seleccionamos el rango G2:S8 y abrimos el menú de formato condicional.



En la ventanilla de Condición 1 usamos la opción Fórmula e introducimos esta:
=Y(G$1>=$B2,G$1<$D2)
4 – Para lograr el efecto de colores alternados podemos usar dos condiciones con las siguientes fórmulas:
para la primera condición (color azul) =Y(G$1>=$B2,G$1<$D2,RESIDUO(FILA(),2)=0)
para la segunda condición (color mora) =Y(G$1>=$B2,G$1<$D2,RESIDUO(FILA(),2)=1)


El efecto final es:



Otra alternativa es utilizar los gráficos de Excel para representar el diagrama Gantt. Para lograr esto usaremos el gráfico de tipo barras. Esta técnica requiere usar algunos "trucos".
Los pasos son los siguientes:

1 – Usamos la misma tabla de datos del ejemplo anterior

2 – Seleccionamos el rango A1:C8 (sin incluir la columna "Final"), abrimos el menú de gráficos y seleccionamos el tipo "Barras" subtipo "barra apilada"





3 – El primer truco consiste en hacer desaparecer la serie "comienzo"



Para lograr esto seleccionamos la serie "Comienzo" en el gráfico, abrimos el menú de formato de la serie y seleccionamos Borde--ninguno, Área--ninguna. Esto hará "desaparecer" la barra. También seleccionamos la leyenda y la borramos



4 – Seleccionamos el eje Y (donde aparecen las actividades) y en el menú de formato seleccionamos "Categorías en orden inverso" y "Eje de valores cruza en máxima categoría"



5 – Luego seleccionamos el eje X y lo adaptamos de manera que muestre un rango de fechas apropiado.



Como pueden ver, podemos introducir los valores en formato de fechas.

El formato final de nuestro diagrama es el siguiente



Como pueden ver, este formato es mucho más preciso que el anterior que estaba basado en formato condicional.

Fuentes y enlaces para esta entrada:
Gantt Charts in Microsoft Excel por Jon Peltier
Gantt Charts en MrExcel
Enlaces a notas sobre diagramas Gantt por Jon Peltier
Floating bars tutorial page de Tushar Mehta
Categorías: Graficos_, Varios_

Technorati Tags: ,

viernes, agosto 25, 2006

Importar lista de archivos a Excel

Ya vimos que las funciones XLM (macrofunciones Excel 4) nos permiten realizar tareas con fórmulas que de otra manera solo serían posibles con macros.
Una de estas funciones es ARCHIVOS. De acuerdo al archivo de ayuda:

Devuelve una matriz de texto horizontal con los nombres de todos los archivos que se encuentran en el directorio o en la carpeta especificados. Use ARCHIVOS para crear una lista de nombres de archivo sobre los que desea que actúe su macro.

La sintaxis es: ARCHIVOS(directorio)

donde "directorio" especifica los directorios o carpetas que contienen los archivos cuyos nombres se van a devolver.

Un lector del blog me consulta como se puede importar a una hoja de Excel una lista de los archivos de una carpeta.
Supongamos que quiero importar a una hoja de Excel los archivos





Esto la hacemos usando la macrofunción ARCHIVOS (FILES en la versión inglesa).
Los pasos son:
1 - definimos el nombre "Archivos" (Insertar--Nombres--Definir), que contiene esta formula: =ARCHIVOS($A$1).





Prestar atención a la referencia absoluta en la fórmula.

2 - En al celda A1 escribimos:
D:\My Music\Mercedes Sosa\Cantata Sudamericana \*.*

3 - En la celda B1 escribimos la formula: =INDICE(Archivos,FILA())

4 - Copiamos la formula hacia abajo (celdas B2, B3, etc) hasta que recibimos como resultado #REF.

El resultado es el siguiente:




Ahora, seleccionamos todo el rango de la columna B y hacemos Copiar--Pegado especial--Valores, para anular las formulas.

Si queremos usar la fórmula en otras hojas del cuaderno, en el diálogo de definición de nombres, borramos el prefijo Hoja1 en la ventanilla "se refiere a", cuidándonos de dejar el signo "!". De esta manera el nombre Archivos se referirá a la celda A1 de la hoja donde se encuentre, y a la hoja donde fue definido.




En esta entrada hay un enlace para descargar el archivo de ayuda en español.


Categorías: Funciones&Formulas_,

Technorati Tags:

lunes, agosto 21, 2006

Algo más sobre macrofunciones XLM (Excel 4)

En la anterior nota sobre uso de macrofunciones XLM, vimos que el "truco" para poder usarlas en hojas de cálculo consiste en incluirlas en nombres.

También señalamos la importancia de prestar atención al uso de referencias relativas.

En esa nota puse un enlace al archivo de ayuda con la lista de las funciones en inglés. Aquí se puede descargar el archivo con la lista en español (después de descargar el fichero, abrirlo y guardar el archivo Xlmcr8.hlp).

La función INDICAR.CELDA (GET.CELL en inglés) es, tal vez, la más útil en hojas de cálculo. Como vimos en la nota anterior, su sintaxis es INDICAR.CELDA(tipo, ref).
Tipo es un argumento que indica que información queremos recibir. En nuestro ejemplo usamos el número de argumento 63, que devuelve el color de llenado (de fondo) de la celda. El número 20 nos permitiría, en forma similar, sumar todos los números en un rango que estén en negrita.

Otro uso interesante es con el argumento 53. Este argumento da como resultado, con formato de texto, el contenido de la celda tal y como aparece en pantalla. De esta manera podemos evitar errores de redondeo que surgen dado que Excel efectúa los cálculos con todos los dígitos del número y no sólo con los exhibidos en la pantalla. Un ejemplo se puede ver en el excelente sitio JKP.


Categorías: Funciones&Formulas_


Technorati Tags: