Row level calculation

I would like to take a value in a table record, manipulate it and store it back in the same row. I just cannot find any documentation on how to do something like that. The closest that I get to it, results in the values from all the rows being included in all the rows, as in the picture below

It seems trivial, so if somebody can just show me where a manual/ tutorial/ example of this is, I would greatly appreciate that.

Capture

Hi,

Is Column 3 a formula? Are you using thisrow? Adding “thisrow” makes sure that only the value on that row shows up. Like so:

image

image

HI Kelly,

Thanks for your response. I have that now working in a column formula. I would like to also do it in an automation rule, seems like the requirement is different.

So every day, at 5:00 AM, the rule needs to do the following calculation StartDate = StartDate + 1 day.

Dear @Piet_Strydom,

You will need to use buttons as explained in this doc.

https://help.coda.io/en/articles/2423860-using-automations

Sorry, Jean Pierre, I do not see the connection?

There is no button created in the link? Also the example sends a message. I do not want to send a message, I want to add one day to the existing date in the field.

Dear @Piet_Strydom,

Yeah, you are right. Seems that I was too much in a hurry. :running_man:t5:

So it’s the combination of an automation and buttons

If you still face challenges to get it working, I recommend to share a dummy copy of your doc, just to have a proper understanding on what you want to do. Screenshots do not always show column types and complete structure!

Hi @Piet_Strydom,

Like @Jean_Pierre_Traets mentioned, this will take a button to add an item to a list. We use something similar to this in our Voting Template that you can fine in the in-doc templates under the “Explore” link at the top right of your page.

The Splice() formula is probably what you’re looking for…

If(
  thisRow.Column.Contains([My Value]),
  thisRow.Column,
  thisRow.Column.Splice(0, 0, [My Value])
)  

The If() statement is to see if the value exists, and if it does, then it won’t do anything, else it will Splice() the value into the list.

I have figured out a way to do this - this being a row level calculation done from an automatization rule.
(Practical example, increase the startdate on a daily task once every day)

Prior attempts:
I have not been able to isolate a specific row from the automation rule. Everytime I access “Start date” from the automation rule builder, I get back the list of all start dates in the table. I cannot use ThisRow, because when I use ThisRow, I am not able to link it to a specific column. (I also found out that one does not seem to be able to manually write the formula, it needs to be built using the drop-downs and the tab. (Or Click))

What I ended up doing, is to create a button with the formula “Start date = Start date +1”. Then I have an automation rule to push the button early in the morning.

What I still have not been able to do, is to add the value in the “Duration” column to the “Start Date”. So I will have to write separate buttons for daily, weekly increases, and add an indicator column to distinguish between daily and weekly tasks. Monthly and annual changes will take some more coding to adjust for the number of days in the month. or days in the year.

Manana

Aha - Update.

It turns out that even if a column is not available in the formula builder, it is still accessible if you manually type it in.

So you need to manually start typing “ThisRow”. And then you need to manually start typing the column name that you are looking for, in this case “Duration”.

Great tool, but does not look like it is always very intuitive.