вторник, 15 апреля 2014 г.

Microsoft Project: Интегрированный статус отклонения задач относительно Плана

В продолжение темы Microsoft Project: Индикатор от разных кастомных полей и на основе интересного поста на Хабре Навигатор для проекта: MS Project + формулы + индикаторы выложу у себя немного изменую формулу для оценки статусов отклонения задач проекта:


Изменения коснулись части определения установки Даты отчета о статусе:

До изменения даты отчета:

После изменения даты отчета:

Формула:

IIf([Дата отчета о состоянии]=ProjDateValue("НД")
;"Не задана дата отчета о состоянии"
;IIf(Not [Активная]
;"Неактивная"
; IIf([% завершения]=100
;"Завершено"
; IIf([Веха]
; Switch( 
([% завершения]<100) And ([Начало]>[Дата отчета о состоянии]);"Будущая задача"; 
([% завершения]<100) And ([Начало]=[Дата отчета о состоянии]);"Задача не начата"; 
([% завершения]<100) And ([Начало]<[Дата отчета о состоянии]);"Задача просрочена"
)
; Switch(
(IIf(ProjDateDiff([Окончание];[Дата отчета о состоянии];[Календарь проекта])>0
;100
;ProjDateDiff([Начало];[Дата отчета о состоянии];[Календарь проекта])/[Длительность]*100)<=[% завершения]) And ([Начало]<=[Дата отчета о состоянии]);"По плану";
[Начало]>[Дата отчета о состоянии];"Будущая задача";
([% завершения]<100) And [Окончание]<[Дата отчета о состоянии];"Задача просрочена";
([% завершения]=0) And ([Начало]<=[Дата отчета о состоянии]) And ([Окончание]>=[Дата отчета о состоянии]);"Задача не начата";
(IIf(ProjDateDiff([Окончание];[Дата отчета о состоянии];[Календарь проекта])>0
;100
;ProjDateDiff([Начало];[Дата отчета о состоянии][Календарь проекта])/[Длительность]*100)>[% завершения]) And ([Окончание]>=[Дата отчета о состоянии]);"Задержка"
)
)
)
)