Recently, a request came in to my BLOG to discuss the use of the ProjDateAdd function and I noticed online that many people seem to have lots of problems with it, so figured it might be worthwhile to provide some detail on this function.
The ProjDateAdd function is probably not the best description, but it's purpose is to take a Date and add a duration to come up with the new date. For example, if you add 5D to 10/10/2005, the result from this function would be “10/14/2005“.
Since this is a Custom Field, you might wonder why someone would want to use such a function. Naturally, you might just use this function to get a date that will then be further calculated. However, the ProjDateAdd function can use the calendar function, which could actually be a reason to use it, so here are some examples I thought might be helpful. Before we begin, here is the Function itself (add this as a formula to a custom Date field):
ProjDateAdd( date, duration, calendar )
Date: The date you want to add a duration to.
Duration: Add this to the date you specify.
Calendar: The calendar to use when calculating the resulting date.
NOTE: To get the name of the calendar, go to “Tools->Organizer“ and select the “Calendar“ tab. This is where the exact name is that you need to type in the Calendar setting.
This example adds 5 Days to the Finish date of a task using the “Standard“ calendar:
ProjDateAdd(Finish,"5D","Standard")
Example #1: Test a new calendar before applying it
Let's say you are using the standard calendar (8 hours a day, 1 hour break, holidays) and a need arises to consider changing to a new calendar. Simply making this change would re-calulate your entire project with results that you may not have expected. By using the ProjDateAdd function, you could find out what the new finish date of every task would be prior to applying the new calendar. For purposes of this example, let's say you wish to modify your project to the “24 Hour“ shift calendar, but want to understand what the outcome of this change would be to your plan. Create a new Custom Date field called “New Finish Date“ and add this formula:
ProjDateAdd(Finish,Duration,"24 Hours")
Finish: Uses the Finish date of the task.
Duration: Uses the Duration of the task and adds it to the finish date.
24 Hours: Uses the 24 Hour calendar in MS Project to determine what the New Finish Date is.
Example #2: Calculate a second finish dates for a task
In a perfect world, all estimates are perfect and resources are always available to perform what they must. This perfect world would assume no issues occur and you did so much up-front planning that no issue or risk will go unresolved and life is beautiful. Right :-)
In this example, you are the Project Manager and performed a study that shows most of your company's projects are about 25% over schedule. Taking this into consideration, you create a project with your team that is the most realistic plan you can all come up with. However, when reporting to management, you want to show the 25% schedule. Rather than creating two different project plans, you simply create one and use the ProjDateAdd function to add 25% more time to every task:
ProjDateAdd(Finish,((Duration*0.25)+Duration),"Standard")
Finish: Uses the Finish date of the task.
((Duration*0.25)+Duration): This formula calculates what 25% more Duration to the task will be.
“Standard“: Uses the Standard calendar in MS Project.
Hope this was helpful!
-Bill