The Intensional Spreadsheet
billwadge.wordpress.com
billwadge.wordpress.com
0. https://bettersolutions.com/excel/formulas/cell-references-a....
Microsoft only later adopted A1 formulas to fall in line with VisCal and Lotus 1-2-3.
Joel Spolsky explaining how it works: https://youtu.be/0nbkaYsR94c?t=567
> It’s been pointed out that you can get something close to this with R1C1 notation. R[-2]C is the cell two columns to the left on the same row. This notation is not as general; for example we can write left(F+left F).
I'd argue it's more readable too.
0
1
=R[-2]C+R[-1]C
=R[-2]C+R[-1]C
=R[-2]C+R[-1]C
=R[-2]C+R[-1]C
(at least, how Libre Office Calc shows it)There was Egeria[0] featured on HN some years ago, but they've seem to have reverted to a closed beta since then.
--
[0] - https://news.ycombinator.com/item?id=18656746
[1] - https://news.ycombinator.com/item?id=22927875 points out https://www.xcubes.net/, which seems like the "middle" I was looking for.
We've implemented almost precisely this in Causal (https://causal.app) — models come with the 'time' dimension as a first-class citizen [1], letting you write a single formula like
Revenue[t] = Revenue[t-1] * (1 + Growth Rate)
to calculate the Revenue at all points in time. And you can do vectorised operations along the time dimension by writing formulas like this: Profit = Revenue - Costs
where Revenue and Costs, and therefore Profit, vary over time.---
[1]: You can specify the time dimension yourself, e.g. "Monthly, Jan 2018 – Jan 2023" or "Yearly, 2020 – 2030"
In Causal any cell (we call them variables) can be computed by another spreadsheet (we call them models). To make this more powerful a model can have input parameters like functions in programming languages. So a model can be composed of reusable submodels.
There’s a bunch of spreadsheet templates floating around the internet but there’s no way to compose them or update them. Wouldn’t it be great to have something like npm for spreadsheet models?
The only thing I couldn't figure out is how to rename a scenario.
Is adding inference on the roadmap?