Skip to main content

New Formula Field Functions


There are several requests floating around the forums related to the need/desire for more formula field functions - mostly related to arrays, linked records, or javascript like functionality.

I’m going to create this #feature-requests post with some of the initial ones that I have posted myself, or have seen in the forums, and I will endeavor to keep it updated with new ones that I find or see posted; and, I will even endeavor to cross them off the list as Airtable implements them :winking_face:

To keep the format clean, I’m going to make a section that lists just the function requested and a brief description of functionality - I think the intention for use and the use-cases should be clear by the structure of the function. This will be followed by a section with links to some of the posts I have seen addressing the need/desire for some of these functions.

Airtable users - If you have an idea for a function that is not currently in the list, post it as a reply here and I will try to add it to the list in this OP if the intention is clear and the functionality seems feasible.

@Airtable_Support, @Airtable_Team, @Katherine_Duh, @Howie, @Kasra - please consider :grinning_face_with_big_eyes:

Functions List

LOOKUP(table, field, linked-records-field)
  • Lookup field functionality, but can be evaluated within a formula field
ROLLUP(table, field, ROLLUP-FUNCTION())
  • Rollup field functionality, but can be evaluated within a formula field
ARRAY_DIFF(array 1, array 2)
  • Takes two arrays (or strings of objects with a separator that can easily be converted to an array) - returns {array 3} which contains all objects from {array 1} that do not also exist in {array 2} (ie, subtract {array 2} from {array 1})
ARRAY_EACH(array, variable, FUNCTION())
  • Takes an array and a compatible Function - loops over the array and for each object, saves the object in the variable, and allows the user to use the variable in the chosen, compatible, string function (such as SUBSTITUTE(), or FIND()) or in logical Functions (such as IF(), OR(), AND()); works like a JS for loop
ARRAY_INTERSECT(array 1, array 2, array 3, ...)
  • Takes any number of arrays (or strings of objects with a separator that can easily be converted to an array) - returns an array with only objects that exist in every array provided to the function

Links List

23 replies

  • Inspiring
  • 1386 replies
  • May 22, 2018

Remember you can essentially write a formula within the rollup aggregation function window; simply use the keyword 'values' to reference the rolled-up field. The one relatively constraining limitation is that you can’t address directly more than one rolled-up value, which presumably your suggested enhancement could.


W_Vann_Hall wrote:

Remember you can essentially write a formula within the rollup aggregation function window; simply use the keyword 'values' to reference the rolled-up field. The one relatively constraining limitation is that you can’t address directly more than one rolled-up value, which presumably your suggested enhancement could.


Exactly - the ability to reference multiple Rollups within a formula would be nice, but also, I think that to make it compatible with the ARRAY_EACH() function being proposed, you’d have to be able to address the Rollup within the ARRAY_EACH() function itself - I’m not sure it would work if you just referenced a distinct Rollup field. Maybe I’m not thinking properly about that.

Also, I’ve always had trouble with writing formulas in Rollup fields - perhaps I haven’t been thinking about using 'values' in the right way


  • Author
  • Inspiring
  • 1691 replies
  • September 13, 2018

I’ve lost the ability to edit this post, sadly.
(explanation here)

Until (hopefully) I can edit it again, here’s another addition to the list:

Function

Formula Field Version

PROD(value 1, value 2, value 3, etc...)

Rollup Field Version

PROD(values)
  • Takes any number of numerical values and multiplies them together to obtain the product of those values

Reference Link


  • Author
  • Inspiring
  • 1691 replies
  • November 8, 2018

Functions

POP(array)
  • Returns the last value out of an array (the array most likely being a reference to a Rollup field)
SHIFT(array) .... or ... PULL(array)
  • Returns the first value out of an array (the array most likely being a reference to a Rollup field)

Link


  • Author
  • Inspiring
  • 1691 replies
  • December 20, 2018

Function

CURRENCY(number, 'currencySymbol')
  • Takes a number as either integer, decimal, or field reference, and a currency symbol ('$', '€', '£', etc…); returns the number rounded and formatted as currency

Link


Jeremy_Oglesby wrote:

Function

CURRENCY(number, 'currencySymbol')
  • Takes a number as either integer, decimal, or field reference, and a currency symbol ('$', '€', '£', etc…); returns the number rounded and formatted as currency

Link


Adding live conversation rates to a CURRENCY function would be killer.


  • New Participant
  • 2 replies
  • September 4, 2019

Wow. NEED this so badly.

:frowning:

Is there no way to automatically get the value of a linked records field automatically now? An API populates my table at the moment from orders on my online store and I need to look up shipping costs per shipping method on a linked table. Right now I have to manually copy the shipping method value to the linked record field to get the lookup to work. It’s a pain.


Sean_io wrote:

Wow. NEED this so badly.

:frowning:

Is there no way to automatically get the value of a linked records field automatically now? An API populates my table at the moment from orders on my online store and I need to look up shipping costs per shipping method on a linked table. Right now I have to manually copy the shipping method value to the linked record field to get the lookup to work. It’s a pain.


I haven’t yet played with the API, but using Integromat (which uses the API under the hood) to edit Airtable data, I can pass text into a linked record field and it will make the link if it finds a record with a matching name in the primary field. Not sure how much extra work it would take directly with the API to do something similar, but perhaps @Bill.French can offer some insight on this.


Check out Ragic.com… it is not as clean as airtable, but if you are looking for something that is still quick to set up, AND allows the implementation of more powerful formulas and forms … all for about the same price as airtable, then Ragic.com is what you need. Airtable is great for what it does… but dont try to use a hammer when you need a mallet. Choose the right tool for the right job. I’m tired of fighting airtable to get these features. Airtable is great…just going in another direction.


  • New Participant
  • 2 replies
  • November 14, 2019

Hi everyone,
I am pretty new to Airtable so in the midst of generating a few bases. What I have noticed so far and can see that people have been requesting for it for a while is COUNTIF, COUNTIFS, SUMIF and SUMIFS.

Linked to the above formula and applicable to current SUM and COUNT is a function that I use in Power BI called ALL. ALL forumla basically take any filter out of the equation and is really useful for taking the grandtotal to calculate any ratio or present it on its ok.

For example, the sum and rollup can show a told and when we filter the information or group them, we can see the total for that group alone. However, the only place to see the grandtotal is at the bottom. Moreover, the grandtotal that appears at the bottom of the base cannot be refered to in any formula. Therefore, adding the ALL function will transform the capability of Airtable in terms of creating calculated fields.

Happy to provider further clarification if not already clear.


  • Author
  • Inspiring
  • 1691 replies
  • December 28, 2019
Jawed_Neshat wrote:

Hi everyone,
I am pretty new to Airtable so in the midst of generating a few bases. What I have noticed so far and can see that people have been requesting for it for a while is COUNTIF, COUNTIFS, SUMIF and SUMIFS.

Linked to the above formula and applicable to current SUM and COUNT is a function that I use in Power BI called ALL. ALL forumla basically take any filter out of the equation and is really useful for taking the grandtotal to calculate any ratio or present it on its ok.

For example, the sum and rollup can show a told and when we filter the information or group them, we can see the total for that group alone. However, the only place to see the grandtotal is at the bottom. Moreover, the grandtotal that appears at the bottom of the base cannot be refered to in any formula. Therefore, adding the ALL function will transform the capability of Airtable in terms of creating calculated fields.

Happy to provider further clarification if not already clear.


@Jawed_Neshat – it sounds like what you are wanting to do might be possible with conditional rollups.

In short - create a field in the table being rolled up that reproduces the value in question, (say, an amount), but only if some condition is met. Otherwise, the field is blank. Then in your summary table that is rolling up the records, do a SUM(values), AVG(values), etc. rollup on that conditional field.


  • Inspiring
  • 90 replies
  • May 21, 2020

In support of the lookup function, I think a huge value in this formula, would be to enable iterations. There are some extremely elaborate base structures just to overcome the fact that Airtable currently does not support any type of iterative formula.

A simple example: I have two tables

  1. Projects Table
  2. Tasks Table

I assign records in the Tasks table to a project, lets say 3-50 tasks per project. Then each task is linked to the next and previous task (a pain in itself currently, but lets not worry about that here). I simply want to sort by task number in the sequence. This sounds easy, but currently isn’t!

If I could have a formula field that simply looked up the same field on a linked record and added 1, I would be golden! Unfortunately, instead I had to create 50 lookup fields to achieve an illusion of this capability limited to a maximum of 50 records.

Of course a circular reference might occur if someone linked the record to itself on accident, but if that could just throw an “error” I would be very happy :slightly_smiling_face:


ScottWorld
Forum|alt.badge.img+20
  • Brainy
  • 8735 replies
  • May 21, 2020

@Jeremy_Oglesby

I think one of the key missing features is the ability for us to use Airtable’s own internal summary functions within our own formulas!

Airtable cosmetically displays summary fields in both grouping headers and view footers, but we have absolutely no way to grab those values and use them in our own formulas.

Airtable only gives us access to summary functions in Rollup Fields and Count Fields, which require us to link to another table.

But we have no access to summary functions for the records in a single table.

In essence, Airtable’s summary functions have no concept of other records within the same table, and they have no concept of groupings within the same table.

Cosmetically speaking, Airtable displays the values that we need onscreen, but we can’t use those values in formulas.

We really need access to these onscreen summary functions in our formulas.

And, to be clear, there are 2 different types of summary functions here:

  1. Groupings
  2. Entire view

This would be a killer feature which would save us tons & tons of headaches, because currently we have absolutely no way of creating formulas that can summarize data within a single table. We are always required to link to other tables to get summary functions.


  • Inspiring
  • 90 replies
  • May 26, 2020
ScottWorld wrote:

@Jeremy_Oglesby

I think one of the key missing features is the ability for us to use Airtable’s own internal summary functions within our own formulas!

Airtable cosmetically displays summary fields in both grouping headers and view footers, but we have absolutely no way to grab those values and use them in our own formulas.

Airtable only gives us access to summary functions in Rollup Fields and Count Fields, which require us to link to another table.

But we have no access to summary functions for the records in a single table.

In essence, Airtable’s summary functions have no concept of other records within the same table, and they have no concept of groupings within the same table.

Cosmetically speaking, Airtable displays the values that we need onscreen, but we can’t use those values in formulas.

We really need access to these onscreen summary functions in our formulas.

And, to be clear, there are 2 different types of summary functions here:

  1. Groupings
  2. Entire view

This would be a killer feature which would save us tons & tons of headaches, because currently we have absolutely no way of creating formulas that can summarize data within a single table. We are always required to link to other tables to get summary functions.


Agreed! I was just banging my head on this wall today. I want to summarize data in a table without having to link every record from that table to another table! That is not an option for a large set of records. The group summaries are great, but not accessible.


ScottWorld
Forum|alt.badge.img+20
  • Brainy
  • 8735 replies
  • May 26, 2020
Paul_Warren wrote:

Agreed! I was just banging my head on this wall today. I want to summarize data in a table without having to link every record from that table to another table! That is not an option for a large set of records. The group summaries are great, but not accessible.


Yes. That’s a great way to sum it up:

“Group summaries should be accessible to us.”


What would be great is if functions defined in Scripting Blocks are allowed to be used in Formula fields.
That way, if there is a function that is needed but missing, we have the option to write a new function that we can use.


Karlstens
  • Inspiring
  • 601 replies
  • October 5, 2022
ScottWorld wrote:

@Jeremy_Oglesby

I think one of the key missing features is the ability for us to use Airtable’s own internal summary functions within our own formulas!

Airtable cosmetically displays summary fields in both grouping headers and view footers, but we have absolutely no way to grab those values and use them in our own formulas.

Airtable only gives us access to summary functions in Rollup Fields and Count Fields, which require us to link to another table.

But we have no access to summary functions for the records in a single table.

In essence, Airtable’s summary functions have no concept of other records within the same table, and they have no concept of groupings within the same table.

Cosmetically speaking, Airtable displays the values that we need onscreen, but we can’t use those values in formulas.

We really need access to these onscreen summary functions in our formulas.

And, to be clear, there are 2 different types of summary functions here:

  1. Groupings
  2. Entire view

This would be a killer feature which would save us tons & tons of headaches, because currently we have absolutely no way of creating formulas that can summarize data within a single table. We are always required to link to other tables to get summary functions.


Found this thread when I was trying to find an array difference formula, where array 1 and array 2 are compared and then the difference is returned within array 3. Looks like I’ll need to automate the solution. :frowning:

Thinking about the Summary shortfall you’ve mentioned, this too has annoyed me over the years. It would be great to see either Summary functions added to the Formula Field, or perhaps, even a designated new type of Field called “Summary” that returns specific summary data (albeit, duplicated for the cells within each group, perhaps it could have an array [“Count”, “Value”] ).


thanks for sharing these ideas! super valuable :pray:


Alexey_Gusev
Forum|alt.badge.img+12
Karlstens wrote:

Found this thread when I was trying to find an array difference formula, where array 1 and array 2 are compared and then the difference is returned within array 3. Looks like I’ll need to automate the solution. :frowning:

Thinking about the Summary shortfall you’ve mentioned, this too has annoyed me over the years. It would be great to see either Summary functions added to the Formula Field, or perhaps, even a designated new type of Field called “Summary” that returns specific summary data (albeit, duplicated for the cells within each group, perhaps it could have an array [“Count”, “Value”] ).


You can use this way for your goal. Topic is here, but I don’t think it has more helpful info to add to my quote and picture.


Michael_Walker wrote:

thanks for sharing these ideas! super valuable :pray:


Unfortunately, it’s been 4 years now and none of this has been added. While it’s true that scripting automations (which were implemented after this feature request was made) can basically address all the same use-cases, that is much less approachable to many people than a formula field, and a lot less convenient in a lot of cases.


Karlstens
  • Inspiring
  • 601 replies
  • October 8, 2022
Jeremy_Oglesby wrote:

Unfortunately, it’s been 4 years now and none of this has been added. While it’s true that scripting automations (which were implemented after this feature request was made) can basically address all the same use-cases, that is much less approachable to many people than a formula field, and a lot less convenient in a lot of cases.


The power of Formula fields is also from API responses. Through my initial use of them, I noticed that data sent to Airtable via an API call then returned the calculated field in that same operation - Although I’m yet to leverage this, it’s one thing to keep in mind when deciding whether data needs to be calculated in a formula field or returned by a scripting Automation.


Reply