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:

Screenshot 2023-04-15 151841.png
  • Successfully automates Health for Tasks based on desired criteria.
  • Should only apply if the row is a Task.

Formula 2:

Screenshot 2023-04-15 151926.png
  • 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.
Screenshot 2023-04-15 155424.png

Any assistance in combining these formulas would be greatly appreciated. Thank you.

Best Answer

  • Josh Martin
    Josh Martin ✭✭
    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")))

  • Josh Martin
    Josh Martin ✭✭
    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
  • Wow, thank you for sharing your solution!!

    Need more information? 👀 | Help and Learning Center

    こんにちは (Konnichiwa), Hallo, Hola, Bonjour, Olá, Ciao!👋 | Global Discussions

Help Article Resources

Want to practice working with formulas directly in Smartsheet?

Check out the Formula Handbook template!