Share
Explore

# How this works

The Key Results table
Key Result
Due Date - the goal due date for your key result
Key Result - a “Lookup” column to the Key Results table
Dependent on - a “Lookup” to this same Tasks table with a filter added under “Item Settings” for the lookup column options. This filter prevents tasks from becoming dependent on themselves.

Start Date - the estimated date the task needs to start on and it’s calculated and based on the total days for completion of this task and any dependent tasks it may have.

[Key Result].[Due Date].ToDate() - Days(thisRow.[Total days to complete])
End Date - the estimated finish date for the task which uses the estimated start date and estimated days to complete.

[Start Date].ToDate() + Days(thisRow.[Days to complete])
Total days to complete - this is a sum of the estimated total days to complete this task and the task it is dependent on. The trick in the solution is in this formula. If there are 3 tasks; Task 1 depended on Task 2 and Task 2 dependent on Task 3, and if each task takes 4 days, then Task 3 would have “4 + 0” which is a total of 4, Task 2 would have “4 + 4” which is a total of 8, and Task 1 would have a total of “4 + 8” which is equal to 12 days.

[Days to complete] + thisTable.Filter([Dependent on]=thisRow).[Total days to complete].Max(0)
Row ID - this is simply used as a unique row identifier. This is required for the filter in the “Dependent on” column.

RowId(thisRow)
Parent Path - traces the Row ID’s of chain of dependent rows and is used in the “Dependent on” filter.

If(
thisRow.[Dependent on].IsBlank(),
List(thisRow.[Row ID]),
List(thisRow.[Row ID], thisTable.Filter([Row ID]=thisRow.[Dependent on].[Row ID]).[Parent Path]).ListCombine()
)