Hey!
Regarding AddColumns()
, if you feel like you need that you must be doing something wrong. Coda is not spreadsheets, you don’t think of your tables as MxN matrices in Coda. Columns are not a dimension of data here — they are properties of records, which exist one per row. Think of Coda tables as if each row in Coda is a cell in Sheets that can hold not one but multiple values (multiple characteristics of a record).
What you most likely need is a table that would have MxN rows, a column to store the group value on M dimension, and a column to store the group value on N dimension. And a column to hold the value. If you disagree, please tell me what you’re trying to achieve.
Regarding RunActionsN()
, there’s no need — you can implement it like this:
Sequence(1, N).FormulaMap(RunActions(
action1,
action2, ...
))
Also you may find this tutorial useful (the first ~10 minutes of the video):
P.S. There is only one truly valid reason to want an MxN matrix in Coda: for copy-pasting it into existing Sheets that expect this kind of data orientation. Unfortunately there’s no good solution for that: you either need to update your sheets to accept a vertical table, or deal with the fact that you can only have a constant number of columns and spend quite some effort setting those up.