The core innovation of Timeline is the integration of built-in discrete time as the third dimension of the spreadsheet. The user can step through individual time steps and observe the spreadsheet cell values change over time.
In Timeline, a cell can reference its own previous value based on which it calculates its new value. However, a time-aware cell needs an initial value to start with. For this purpose, we introduce the dual-assignment syntax that allows cells to have up to two formulas.
= 0 => 5The first formula specifies the cell's value at the first time step, whereas the second formula specifies the cell's value at all subsequent steps. If only one formula is provided, it is treated as the primary formula.
To create a time-aware cell - a cell that references its own previous value - we use brackets that specify the number of steps to go back into history.
= 1 => A1[-1] + 1In this example, A1 is initially set to 1 and in all subsequent steps, it increments its previous value by 1, resulting in a simple counter.
Using the same syntax, we can retrieve a range of previous values of a cell.
= B2[:-5]In this example, we retrieve the last five values of cell B2.
= B2[-2:-5]In this second example, we retrieve the values of cell B2 from the second to the fifth step.
Traditional spreadsheets offer the ability to select a range of cells on the spreadsheet. Timeline builds upon this idea by allowing the user to select a range of previous values. What if we combine these two ranges into a three-dimensional object in time and space?
To select a cell range, we use the following syntax:
= B2:C5To select a time range, we use the following syntax:
= B2:C5[-5]To select a three-dimensional range, we use the following syntax:
= B2:C5[-5:-10]This construct retrieves a cell range of B2:C5 in five different time steps, resulting in a three-dimensional range.