Health for Parent Row Based on Health of Child Rows
Hello, I need some assistance combining the following formulas into a single Column Formula.
Formula 1:
- Successfully automates Health for Tasks based on desired criteria.
- Should only apply if the row is a Task.
Formula 2:
- Successfully automates Health for Milestones & Project Components based on desired criteria.
- Should only apply if the row is either a Milestone or a Project Component.
Problem:
- The above formulas need to be combined into a single Column Formula in order to fully automate Health for Tasks, Milestones, and Project Components across the Project Schedule.
Notes:
- The Project Schedule defines and formats Milestones and Project Components based on nesting and the use of Checkbox Columns.
Any assistance in combining these formulas would be greatly appreciated. Thank you.
Best Answer
-
Problem solved. I've also incorporated automation to:
- Automate Health aggregation one level higher (i.e., Project Name).
- Automate Health for Milestones without nested Tasks to act as if they were Child rows.
- Automate Health for Tasks with Sub-Tasks to act as if they were Parent rows.
Completed Formula:
=IF(AND(OR(Project@row = 1, Component@row = 1, Milestone@row = 1), COUNT(CHILDREN()) > 0), (IF(COUNTIF(CHILDREN(), "Blue") = COUNT(CHILDREN()), "Blue", IF(COUNTIF(CHILDREN(), "Red") > 0, "Red", IF(AND(COUNTIF(CHILDREN(), "Yellow") > 0, COUNTIF(CHILDREN(), "Yellow") >= COUNTIF(CHILDREN(), "Green")), "Yellow", "Green")))), (IF(COUNT(CHILDREN()) > 0, (IF(COUNTIF(CHILDREN(), "Blue") = COUNT(CHILDREN()), "Blue", IF(COUNTIF(CHILDREN(), "Red") > 0, "Red", IF(AND(COUNTIF(CHILDREN(), "Yellow") > 0, COUNTIF(CHILDREN(), "Yellow") >= COUNTIF(CHILDREN(), "Green")), "Yellow", "Green")))), (IF(OR(Status@row = "Complete", Status@row = "Descoped"), "Blue", IF(Status@row = "At Risk", "Red", IF(AND(Status@row = "", TODAY() < [End Date]@row), "Yellow", IF(AND(Status@row = "", TODAY() >= [End Date]@row), "Red", IF(AND(Status@row = "Not Started", TODAY() >= [End Date]@row), "Red", IF(AND(Status@row = "In Progress", TODAY() >= [End Date]@row), "Red", IF(AND(Status@row = "Requires Review", TODAY() >= [End Date]@row), "Red", IF(AND(Status@row = "In Progress", TODAY() < [End Date]@row), "Green", IF(AND(Status@row = "Not Started", TODAY() < [Start Date]@row, Duration@row <= 10), "Green", IF(AND(Status@row = "Not Started", TODAY() < [Start Date]@row, Duration@row > 10), "Green", IF(AND(Status@row = "Not Started", [End Date]@row > TODAY(), TODAY() >= [Start Date]@row, Duration@row <= 10), "Yellow", IF(AND(Status@row = "Not Started", [End Date]@row > TODAY(), TODAY() >= [Start Date]@row, Duration@row > 10), "Green", IF(AND(Status@row = "Requires Review", TODAY() < [Start Date]@row, Duration@row <= 10), "Yellow", IF(AND(Status@row = "Requires Review", TODAY() < [Start Date]@row, Duration@row > 10), "Yellow", IF(AND(Status@row = "Requires Review", [End Date]@row > TODAY(), TODAY() >= [Start Date]@row, Duration@row <= 10), "Red", IF(AND(Status@row = "Requires Review", [End Date]@row > TODAY(), TODAY() >= [Start Date]@row, Duration@row > 10), "Yellow"))))))))))))))))))))
Columns Required:
- Column Name = Project // Column Type = Checkbox
- Column Name = Component // Column Type = Checkbox
- Column Name = Milestone // Column Type = Checkbox
- Column Name = Health // Column Type = Symbols (4 Colors for Red, Green, Yellow, & Blue)
- Column Name = Status // Column Type = Dropdown List (6 Statuses for "Blank," "Not Started," "In Progress," "Requires Review," "At Risk," "Completed," & "Descoped")
- Column Name = Start Date // Column Type = Date/Time
- Column Name = End Date // Column Type = Date/Time
- Column Name = Duration // Column Type = Duration
Answers
-
Text for the Formulas included here to assist with modifications:
Formula 1:
=IF(OR(Status@row = "Complete", Status@row = "Descoped"), "Blue", IF(Status@row = "At Risk", "Red", IF(AND(Status@row = "", TODAY() < [End Date]@row), "Yellow", IF(AND(Status@row = "", TODAY() >= [End Date]@row), "Red", IF(AND(Status@row = "Not Started", TODAY() >= [End Date]@row), "Red", IF(AND(Status@row = "In Progress", TODAY() >= [End Date]@row), "Red", IF(AND(Status@row = "Requires Review", TODAY() >= [End Date]@row), "Red", IF(AND(Status@row = "In Progress", TODAY() < [End Date]@row), "Green", IF(AND(Status@row = "Not Started", TODAY() < [Start Date]@row, Duration@row <= 10), "Green", IF(AND(Status@row = "Not Started", TODAY() < [Start Date]@row, Duration@row > 10), "Green", IF(AND(Status@row = "Not Started", [End Date]@row > TODAY(), TODAY() >= [Start Date]@row, Duration@row <= 10), "Yellow", IF(AND(Status@row = "Not Started", [End Date]@row > TODAY(), TODAY() >= [Start Date]@row, Duration@row > 10), "Green", IF(AND(Status@row = "Requires Review", TODAY() < [Start Date]@row, Duration@row <= 10), "Yellow", IF(AND(Status@row = "Requires Review", TODAY() < [Start Date]@row, Duration@row > 10), "Yellow", IF(AND(Status@row = "Requires Review", [End Date]@row > TODAY(), TODAY() >= [Start Date]@row, Duration@row <= 10), "Red", IF(AND(Status@row = "Requires Review", [End Date]@row > TODAY(), TODAY() >= [Start Date]@row, Duration@row > 10), "Yellow"))))))))))))))))
Formula 2:
=IF(COUNTIF(CHILDREN(), "Blue") = COUNT(CHILDREN()), "Blue", IF(COUNTIF(CHILDREN(), "Red") > 0, "Red", IF(AND(COUNTIF(CHILDREN(), "Yellow") > 0, COUNTIF(CHILDREN(), "Yellow") >= COUNTIF(CHILDREN(), "Green")), "Yellow", "Green")))
-
Problem solved. I've also incorporated automation to:
- Automate Health aggregation one level higher (i.e., Project Name).
- Automate Health for Milestones without nested Tasks to act as if they were Child rows.
- Automate Health for Tasks with Sub-Tasks to act as if they were Parent rows.
Completed Formula:
=IF(AND(OR(Project@row = 1, Component@row = 1, Milestone@row = 1), COUNT(CHILDREN()) > 0), (IF(COUNTIF(CHILDREN(), "Blue") = COUNT(CHILDREN()), "Blue", IF(COUNTIF(CHILDREN(), "Red") > 0, "Red", IF(AND(COUNTIF(CHILDREN(), "Yellow") > 0, COUNTIF(CHILDREN(), "Yellow") >= COUNTIF(CHILDREN(), "Green")), "Yellow", "Green")))), (IF(COUNT(CHILDREN()) > 0, (IF(COUNTIF(CHILDREN(), "Blue") = COUNT(CHILDREN()), "Blue", IF(COUNTIF(CHILDREN(), "Red") > 0, "Red", IF(AND(COUNTIF(CHILDREN(), "Yellow") > 0, COUNTIF(CHILDREN(), "Yellow") >= COUNTIF(CHILDREN(), "Green")), "Yellow", "Green")))), (IF(OR(Status@row = "Complete", Status@row = "Descoped"), "Blue", IF(Status@row = "At Risk", "Red", IF(AND(Status@row = "", TODAY() < [End Date]@row), "Yellow", IF(AND(Status@row = "", TODAY() >= [End Date]@row), "Red", IF(AND(Status@row = "Not Started", TODAY() >= [End Date]@row), "Red", IF(AND(Status@row = "In Progress", TODAY() >= [End Date]@row), "Red", IF(AND(Status@row = "Requires Review", TODAY() >= [End Date]@row), "Red", IF(AND(Status@row = "In Progress", TODAY() < [End Date]@row), "Green", IF(AND(Status@row = "Not Started", TODAY() < [Start Date]@row, Duration@row <= 10), "Green", IF(AND(Status@row = "Not Started", TODAY() < [Start Date]@row, Duration@row > 10), "Green", IF(AND(Status@row = "Not Started", [End Date]@row > TODAY(), TODAY() >= [Start Date]@row, Duration@row <= 10), "Yellow", IF(AND(Status@row = "Not Started", [End Date]@row > TODAY(), TODAY() >= [Start Date]@row, Duration@row > 10), "Green", IF(AND(Status@row = "Requires Review", TODAY() < [Start Date]@row, Duration@row <= 10), "Yellow", IF(AND(Status@row = "Requires Review", TODAY() < [Start Date]@row, Duration@row > 10), "Yellow", IF(AND(Status@row = "Requires Review", [End Date]@row > TODAY(), TODAY() >= [Start Date]@row, Duration@row <= 10), "Red", IF(AND(Status@row = "Requires Review", [End Date]@row > TODAY(), TODAY() >= [Start Date]@row, Duration@row > 10), "Yellow"))))))))))))))))))))
Columns Required:
- Column Name = Project // Column Type = Checkbox
- Column Name = Component // Column Type = Checkbox
- Column Name = Milestone // Column Type = Checkbox
- Column Name = Health // Column Type = Symbols (4 Colors for Red, Green, Yellow, & Blue)
- Column Name = Status // Column Type = Dropdown List (6 Statuses for "Blank," "Not Started," "In Progress," "Requires Review," "At Risk," "Completed," & "Descoped")
- Column Name = Start Date // Column Type = Date/Time
- Column Name = End Date // Column Type = Date/Time
- Column Name = Duration // Column Type = Duration
-
Wow, thank you for sharing your solution!!
Need more help? 👀 | Help and Learning Center
こんにちは (Konnichiwa), Hallo, Hola, Bonjour, Olá, Ciao! 👋 | Global Discussions
Help Article Resources
Categories
- All Categories
- 14 Welcome to the Community
- Customer Resources
- 64.9K Get Help
- 441 Global Discussions
- 140 Industry Talk
- 472 Announcements
- 4.9K Ideas & Feature Requests
- 129 Brandfolder
- 148 Just for fun
- 68 Community Job Board
- 497 Show & Tell
- 33 Member Spotlight
- 2 SmartStories
- 300 Events
- 36 Webinars
- 7.3K Forum Archives
Check out the Formula Handbook template!