Ready Status Solved - I hope this helps everyone
I've seen a lot of posts with people trying to figure out how to parse out predecessors so that they can set the status of the next task to "Ready" or something similar. I came up with a solution that worked for me, I figured I'd share it. This solution takes care of the various dependency types and lead/lags.
1) Create an Auto Numbering column ("ID")
2) Create a Column to get row numbers ("Index"): MATCH(ID@row, ID:ID, 0)
3) Create a row number column for each non-FS predecessor type you plan to use:
a) FF Index = Index + "FF"
b) SS Index = Index + "SS"
4) Create a multi-select Helper column ("Dependency Helper"): SUBSTITUTE(SUBSTITUTE(Predecessors@row, "FS", ", "), ",", CHAR(10))
5) Create multi-select columns for each dependency type you plan to use:
a) FS Dependencies: JOIN(COLLECT(Index:Index, Index:Index, HAS(Dependencies@row, @cell)), CHAR(10))
b) FF Dependencies: JOIN(COLLECT([FF Index]:[FF Index], [FF Index]:[FF Index], HAS(Dependencies@row, @cell)), CHAR(10))
c) SS Dependencies: JOIN(COLLECT([SS Index]:[SS Index], [SS Index]:[SS Index], HAS(Dependencies@row, @cell)), CHAR(10))
You will now have all of your dependencies separated by type and all lags removed. You can use this to build out status logic however you'd like. Below is an example for setting a Task to "Ready" if all FS Predecessors are 100% complete and all SS Predecessors are greater than 0% complete:
=IF(COUNTM([SS Dependencies]@row, [FS Dependencies]@row) = COUNTIFS(Index:Index, FIND(@cell, [FS Dependencies]@row) > 0, [% Complete]:[% Complete], =1) + COUNTIFS(Index:Index, FIND(@cell, [SS Dependencies]@row) > 0, [% Complete]:[% Complete], >0), "Ready", "Queued")
Cheers!
Vince K.
vince@nnaviaconsulting.com
https://www.linkedin.com/in/vineshkapadia
Comments
-
Love to see how this has come together! Great work on this, Vince, and thanks for sharing!
-
Vince, I'm assuming the "Dependency Helper" column that you reference in #4 is the same as the Dependencies@row column you reference in the formulas in #5?
-
Yep, that's correct.
-
Minor update, using the HAS function instead of FIND in the formula will result in more accuracy (and no false positives)
=IF(COUNTM([SS Dependencies]@row, [FS Dependencies]@row) = COUNTIFS(Index:Index, HAS([FS Dependencies]@row, @cell) > 0, [% Complete]:[% Complete], =1) + COUNTIFS(Index:Index, HAS([SS Dependencies]@row, @cell) > 0, [% Complete]:[% Complete], >0), "Ready", "Queued")
-
@Vince K Thanks for this, bookmarking.
Isis Taylor
Business Analyst Senior
-
This is so helpful, @Vince K. Thank you!
-
The one thing that I would ask is - what happens if a task has no predecessors? We implemented this but then needed to change the formula to stipulate that, if a task had no predecessors, it was ready to start when the Start Date was in the past.
I do like that you've incorporated SS tasks. Our formula wouldn't work in those circumstances. Fortunately, these are edge cases.
Categories
- All Categories
- 14 Welcome to the Community
- Smartsheet Customer Resources
- 63.5K Get Help
- 402 Global Discussions
- 213 Industry Talk
- 450 Announcements
- 4.7K Ideas & Feature Requests
- 141 Brandfolder
- 135 Just for fun
- 56 Community Job Board
- 454 Show & Tell
- 31 Member Spotlight
- 1 SmartStories
- 296 Events
- 36 Webinars
- 7.3K Forum Archives