viernes, septiembre 01, 2006

Formato condicional en Excel – Facilitando la lectura de tablas.

En la nota de ayer sobre diagramas Gantt, mostraba como utilizar formato condicional para alternar los colores de las barras en el diagrama. Esta misma técnica se puede usar para facilitar la lectura de tablas "cargadas" de números.
Supongamos esta tabla de ventas por mes y sucursales:




Para facilitar la lectura, queremos poner un fondo gris fila de por medio. Queremos que la tabla se vea así



Por supuesto podemos hacer esto manualmente. Pero también podemos hacerlo con formato condicional. Seleccionamos el rango de datos de la tabla y luego abrimos el menú de formato condicional. En la ventanilla Condición 1, elegimos la opción "fórmula" y escribimos =RESIDUO(FILA(),2)


La función FILA() da como resultado el número de la fila donde se encuentra la celda. La función RESIDUO da como resultado el residuo o resto de la división entre número y el divisor. Así, por ejemplo, el residuo de dividir 3 por 2 da 1, que Excel interpreta como VERDADERO, y por lo tanto para la fila 3 la condición se cumple.

En nuestro ejemplo la primer fila con fondo gris es la segunda fila de datos. Esto se debe a que en nuestra tabla la primer fila de datos se encuentra en la fila 2, que es par.
Qué hacer si queremos que la primer fila de datos tenga un fondo gris? Cambiamos la fórmula a =RESIDUO(FILA(),2)-1 o =RESIDUO(FILA()-1,2)

Fórmulas equivalentes a estas son:
- para intervalos pares =FILA()=REDONDEA.PAR(FILA())
- para intervalos impares =FILA()=REDONDEA.IMPAR(FILA())

Supongamos ahora que queremos que cada tercer fila tenga un fondo gris. La fórmula que nos permite lograr esto es =NO(RESIDUO(FILA(),3)). La diferencia con la fórmula anterior es que combinamos la función NO en nuestra fórmula.




Si queremos un fondo gris cada 5 líneas, usamos el argumento "5" en lugar de "3"
=NO(RESIDUO(FILA(),5))

En términos generales podemos establecer:
- para intervalos pares usamos la fórmula =RESIDUO(FILA(),número par))
- para intervalos impares la fórmula =NO(RESIDUO(FILA(),número impar))


Categorías: Funciones&Formulas_, Varios_

Technorati Tags: ,

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: