Crea una tabla de Excel Tasks con las columnas solicitadas y un TaskID único que nunca cambie cuando se mueva una tarea. Usa listas controladas para Owner, Priority, Status e IsMilestone. Valida que Done requiera CompletedDate, que Blocked requiera BlockerReason y NextReviewDate, y que DependencyTaskID exista en Tasks. Mantén Status como un dato introducido por el usuario; añade una columna Health calculada mediante una fórmula.
Lógica de Health: si Status es Done o Cancelled, devolver Closed; si DueDate está en blanco, devolver Review; si DueDate<TODAY(), devolver Overdue; si DueDate<=TODAY()+3, devolver Due soon; si Status es Blocked, devolver Blocked; en cualquier otro caso, devolver On track. Coloca Blocked antes de las pruebas de fecha si el equipo quiere dar prioridad a los bloqueos. Añade DaysPastDue solo para el trabajo abierto y vencido, y no calcules el porcentaje completado a partir del tiempo natural transcurrido.
Crea tablas dinámicas por ProjectID y Owner que muestren las cantidades de tareas abiertas, vencidas, próximas a vencer, bloqueadas y completadas; enumera las tareas vencidas de prioridad alta en lugar de ocultarlas en los totales. Añade una vista Milestones ordenada por DueDate. Cada martes, incorpora ProjectID, TaskID, Status, DueDate, Health, Owner y SnapshotDate a una tabla History para que los cambios de plazo sigan siendo visibles. Comprobaciones del miércoles: ID duplicados, responsables o fechas ausentes, dependencias no válidas, LastUpdated desactualizado, elementos bloqueados sin fecha de revisión y conciliación de los recuentos del resumen con las filas de tareas filtradas.