Skip to main content

I am trying to get a sum total of a column in an automation that will send out an email showing the new total every time an amount is added. I was tasked to create an automation running a script, but I am very new to script writing. Any help would be most appreciated

This mornings coffee break, I created this example using a Scripting Extension - once you have an understanding of this, we can then talk about how to gear it within an Automation Script (which will be a very similar exercise, with minor differences).

The key to this is using the Javascript reduce() method. I've also demonstrated how you can filter the data using a filter() method, before the data is summed via reduce().

const emailTable = base.getTable("Numbers Table");

let records = await emailTable.selectRecordsAsync({
fields: ["Fruit", "Total Mass"]
});

console.info(records);

let initialValue = 0;
let sumMass = records.records
.filter(
(record) =>
record.name !== "Green Apple"
)
.reduce((accumulator, record) => record.getCellValue("Total Mass") + accumulator, initialValue);

console.log(sumMass);

Here, we can see the data that's been filtered, then reduced - and the final total;

 


Reply