IIf formula in microsoft project custom field

Copper Contributor

I added the following custom field with the formula: [Remaining Work] / [Remaining Duration]

 

Now I want to add an "if" condition, meaning if a task is 100% complete, that no value or the value "n/a" is given.

 

I found the IIf function is the correct one, but I only get errors with the different ways I have tried to write the formula, e.g.: IIf ([% Complete] = 100, "n/a", [Remaining Work] / [Remaining Duration]) or

IIf ([% Complete] <100, ([Remaining Work] / [Remaining Duration]), "n/a")

 

Do you have any advise how to use the IIf formula?

14 Replies
Nicol860 --

To create a formula that works correctly, I recommend that you use a custom Text field. That is because you want the "n/a" text to appear when a task is 100% complete. Also, you need the formula to test for a milestone, as the formula will result in a division by 0 error. Following is the updated formula, which I tested and confirmed that it works correctly in a Text field:

IIf([Milestone],"n/a",IIf([% Complete]=100,"n/a",[Remaining Work]/[Remaining Duration]))

Hope this helps.

Dear @Dale_HowardMVP, thank you very much for your help!

Unfortunately I can't get it to work, but do you know some resources (books, websites etc.) where I can learn more about how to write formulas in MS Project? I can't find much information online, does there just not exist much information? 

 

Thank you very much for your help! 

Kind regards,

Nicola

Nicola -- "Unfortunately I cannot get it to work..." does not give us enough information to help you further. Did you copy and paste my formula into a task Text field? If so, the formula should have worked immediately. What did you do in response to my last message? And if it is generating an error, please include one or more screenshots to show us what you see.

Also, to the best of my knowledge, the only book on Microsoft Project formulas is in Portuguese, and was written by a colleague of mine. Do you speak/read Portuguese? 🙂

@Dale_HowardMVP,
Ismet Kocaman has a book on Project formula creation. It's not free and I don't know the price but I believe it is similar to Rod Gill's book on Project VBA. The link for Ismet's book is:

http://www.ismetkocaman.com/Formulas/eBook.html 

@Dale_HowardMVP Yes, I copied your formula and also tried typing it in and picking the fields & operators, but it gives me an error message (see screenshot attached).

 

The difficulty is that it does not indicate where the error is, I tried if a simple IIf formula works, but not even that I can get to work.

 

So far only the formula [Remaining Work]/[Remaining Duration] has worked on its own (as a number type).

 

With the IIf formula I want to achieve that the project managers see when a task is complete, so they don't need to pay attention to these tasks when they assess how much work still is to be done in the remaining time for a task. So it does not necessarily need to show "n/a" it could also show something else (like a number or a flag)

I have a different user name because I switched to my work computer
Nicola -- Thanks for sharing the screenshot. That DOES help. I just tested my formula in Project Online Professional (the M365 version of Microsoft Project) and it does work as designed. Therefore, I would recommend you do the following:

1. Launch Microsoft Project and connect to your Project Online system.
2. Open a project that is in flight. You do not need to check out the project.
3. Click Project > Custom Fields.
4. Select the first available task Text field and rename it to the field name of your choice.
5. Click the Formula button for the new Text field.
6. Copy the formula from my previous post in this forum, and then paste it into the Formula dialog.
7. Click the OK button. You SHOULD NOT get an error at this point.
8. In the Custom Fields dialog, click the Add Field to Enterprise button.
9. In the Add Field to Enterprise dialog, DO NOT change the name of the field. Leave the name as it currently appears and then click the OK button. You should see a confirmation that the field was added successfully to Project Web App.
10. Click the OK button to close the confirmation dialog and then click the OK button to close the Custom Fields dialog.
11. Launch your preferred web browser and then navigate to your organization's Project Web App.
12. In the upper right corner of the page, click the Settings button (it looks like a gear wheel) and then select the PWA Settings item.
13. On the PWA Settings page, click the Enterprise Custom Fields and Lookup Tables link.
14. On the resulting page, click the name of the new Text field you just imported.
15. Remove the text that is inside of the parentheses characters, along with the parentheses characters, such as (Text1) for example.
16. Click the Save button.

Completing the above process should resolve your problems. Let us know if this works.

Thank you @Dale_HowardMVP ! It worked perfectly! Thank you very much for your step by step instructions!

 

Do you also know how I can adjust the formula so the summary tasks and parent tasks have an "n/a" as well? (on the picture these are the bold tasks "Phase 1" and "Planungsphase 1")

 

 

NikkyE2404_0-1620046719106.png

 

NickkyE2404 --

Sure do. Open the project in question, then display the Custom Fields dialog. Select the custom Text field in which you created the formula. In the Calculation for Task and Group Summary Rows section of the dialog, select the Use Formula option. Click the OK button. Hope this helps.
Thank you John, for your support. I appreciate it very much.
Hello Dale! Thank you for your willingness to help me out with a problem I have been dealing with. I am working a schedule with multiple, individual schedules - each with its own deadline. For a summary management view, I want to be able to display the amount of positive or negative slack rolled up to each summary on the individual schedules. Since the embedded Total Slack field is a feature provided by Microsoft Project and calculates specifically to minimum slack, this presents a conflict for me. If I "mark on track" any activities that are scheduled to be completed, the total slack for these tasks automatically show "0 days". The problem with that is:
Remaining tasks under the same summary are also late and accurately display negative float (less than 0 days) but because the embedded total slack field uses the completed tasks to calculate remaining float, the summary is then changed and presents a false picture at the summary level. I have built a custom "duration" field to recognize total slack so that I could change the roll up from maximum to Minimum (or vice versa), but this also presents a conflict since the roll up calculates one or the other. Therefore, my summary level view is not reliable. I need a custom field that can summarize the float on ONLY tasks that are less than 100% complete and ignore those tasks which have been marked 100%.

@Brent30,

If I may step in. When you say you have a "schedule with multiple, individual schedules", are you referring to a dynamic master with inserted subprojects? And when you say, "each with its own deadline", where are you setting the deadline? A before and after screen shot would help.

 

What is your end goal? Keep in mind that summary lines are NOT tasks. As such total slack at summary level is a dubious metric.

 

John

@John-project 

John - So for this project file, this is not a typical project phased type model. What i am being asked to build is a single-file schedule with small (8-12 lines) individual repair efforts for various locations; each with its own PoP end dates set a deadlines. Each of these repairs would roll up to its own summary, so at the summary level, it would provide easy visibility into the target deadline for each repair vs. current status of each. For tasks that are 100% complete, the total slack field at the summary level will not ignore 100% completed tasks, but i have now found a formula that works well for this when applied to a custom duration field, so my initial issue has been resolved. 

Brent30,
Okay, if that works for you, then great. Thanks for the feedback.
John