Diagrama de GANTT con Ruta Crítica (CPM) 1/4

Diagrama de GANTT con Ruta Crítica (CPM) 1/4

Calcula la ruta crítica de un proceso para poder graficar la información automáticamente

En este primer vídeo de una serie de cuatro damos un paso más en el proyecto que empezamos hace unas semanas: montar un diagrama de Gantt en Excel. Ahora le añadimos una vuelta de tuerca y empezamos a calcular el CPM (Critical Path Method), es decir, la ruta crítica de las tareas de un proyecto directamente con fórmulas de Excel. Lo hemos dividido en cuatro partes porque hay varios puntos con una complejidad extra que conviene tratar con calma.

En esta primera entrega nos centramos en un concepto clave: el momento más temprano en el que una tarea puede empezar, teniendo en cuenta sus dependencias.

El punto de partida: tareas, predecesores y dependencias

Partimos de una tabla muy sencilla en la que cada actividad se identifica con una letra. Junto a las actividades tenemos:

  • Una columna de predecesores, que indica de qué tareas depende cada una.
  • Una columna de apoyo con asteriscos que veremos cómo aprovechar.

Entender cómo están relacionadas las tareas entre sí es una de las claves para poder generar la ruta crítica: necesitamos detectar qué tareas son necesarias antes de que pueda empezar otra. Eso nos dirá el momento más temprano en el que una tarea puede arrancar, sabiendo que las tareas de las que depende ya tienen que haber terminado.

La función CONTAR.SI y su forma inversa

Para este cálculo nos apoyamos en la función CONTAR.SI. Lo habitual es usarla para contar cuántas veces aparece un elemento dentro de una columna: le damos un rango y un criterio (por ejemplo, una letra) y nos devuelve cuántas veces aparece. Si en el criterio añadimos asteriscos (*), estos actúan como comodín y la fórmula sigue localizando la coincidencia.

Pero CONTAR.SI tiene una forma inversa muy útil. Si en lugar de comparar el rango con un criterio único hacemos que el criterio sea el rango (preguntando si una celda aparece dentro de varias), el resultado deja de ser un número y pasa a ser una matriz que nos indica en qué posición se encuentra cada coincidencia. Por ejemplo, si buscamos la letra B, nos dice que está en la segunda posición; al cambiar la letra, nos va señalando dónde está cada una.

El detalle importante: esta forma inversa solo funciona cuando el comodín está en la parte adecuada del argumento. Por eso resulta clave preparar una columna de apoyo que incluya los asteriscos, de modo que la comparativa reconozca todas las posiciones cuando una tarea tiene más de un predecesor (varias letras separadas). Con esa columna de chequeo, la matriz nos devuelve correctamente todas las posiciones de las letras implicadas.

Combinar CONTAR.SI con FILTRAR

Una vez tenemos esa matriz de posiciones, la pasamos a la función FILTRAR. Así podemos extraer, dentro de la columna de inicios o finales, justo las tareas relacionadas con esas posiciones (por ejemplo, las posiciones 3, 5 y 6). Esta combinación de CONTAR.SI (en su forma matricial) con FILTRAR es la base de todo lo que viene después.

Calcular el final más temprano y el inicio más temprano

Con esas dos funciones dominadas, el resto es bastante directo:

  1. Final más temprano: es lo más fácil de calcular. Equivale al momento más temprano en que una tarea puede empezar más su duración asignada. Si una tarea empieza en el momento cero, su final más temprano será cero más su duración.
  1. Inicio más temprano: aquí distinguimos dos casos con un condicional.
  • Sin predecesores: si la tarea no depende de ninguna otra (su campo de predecesores es igual al identificador de "sin predecesor", marcado con tres guiones), puede empezar en el momento cero. Le sumamos la duración y obtenemos su final.
  • Con predecesores: aplicamos el combo de CONTAR.SI + FILTRAR. Buscamos la letra de la tarea dentro del rango de la columna preparada con asteriscos para reconocer todas sus posiciones, y con FILTRAR recuperamos los momentos de finalización de todas las tareas de las que depende. El máximo de esos finales es el momento en que la tarea puede empezar: solo cuando todas sus predecesoras han acabado.

Por ejemplo, una tarea con dos dependencias puede depender de una que acaba en el momento 90 y de otra que acaba en el 185. El primer momento en que puede ejecutarse es el máximo de esos dos valores, porque hasta entonces no se han cumplido todos sus condicionantes previos. Esta lógica se aplica tarea por tarea hasta rellenar toda la columna.

Conclusión

Con esto completamos el primer paso para calcular el CPM en Excel. Es un trabajo conceptual que merece la pena dejar claro, porque las funciones CONTAR.SI y FILTRAR son la pieza fundamental sobre la que construiremos el resto. En los siguientes vídeos iremos complementando todos los datos necesarios para terminar de calcular la ruta crítica y montar una herramienta completa de gestión de proyectos con un diagrama de Gantt que se calcula automáticamente. Si te resulta útil, sigue la serie hasta el final.

Más contenido de Excel en InflueXcel