Help

Combining Data From Two Multiple-Select Fields Into One

Topic Labels: Formulas
15426 21
cancel
Showing results for 
Search instead for 
Did you mean: 
Lif_Alcon
4 - Data Explorer
4 - Data Explorer

Hello all,

I am stumped. I am trying to combine data from two multiple select fields, into one. For the sake of confidentiality, I have created an example of what I am working with, using part of the Greek alphabet instead of the actual data:

Airtable Example Screenshot

The goal is to combine these two columns into a third that looks and behaves exactly the same as the first two, simply with the data from both combined, into one. As easy as this feels like it should be, every single option I’ve seen either turns the output into text strings (which renders it useless for our tracking purposes), or else it requires a great deal of manually typing or copy-pasting the individual options of the multiple select, into the formula, one by one. It should be noted that while I have only used four Greek letters here, the actual number of entries we are working with is well over 600, and with far longer names, so such a process would be a grueling time-consumer.

Surely there must be some way to automate this?

Also note that there are a couple rows in which both columns already share one of the Greek letters - assuming that there IS a way to automate this, is there also a way to account for/deal with potential duplicates?

Thank you!

21 Replies 21
Nathaniel_Grano
8 - Airtable Astronomer
8 - Airtable Astronomer

This popped back into my mind today and I was curious @Lif_Alcon if the automation example I showed you ended up being helpful?

ThanhLong
5 - Automation Enthusiast
5 - Automation Enthusiast

@Nathaniel_Grano Hi, thanks for your solution. I tested on my base and it works fine...for the first time. However, as I updated the trigger volume by adding new choices/option to that multiselect field. All the options in the combined field, including the newly added one got consolidated into a lengthy option.
Initially: (Orange)(Apple)
Added (Pineapple) to the trigger field
After automation: (Orange,Apple,Pineapple)
Multiselect field has always been something interesting as I get to know Airtable, however it does not work properly sometimes. If you can help me with this, would be really great.
Thanks

Hi @ThanhLong ,

I'm having trouble reproducing your issue. Can you give me an example in more detail? Here's what I tried:

1) Set up the example from before with 2 "trigger" columns named "Field1" and "Field2". Each one contained the options: Apple, Banana, Carrot, Grape

2) Set up the automation

3) Create an item with "Apple" in Field 1 and "Banana" and "Grape" in Field 2

4) Automation produces correct value: "Apple", "Banana", "Grape"

5) Add "Pineapple" to Field1 choices and edit the record to include "Pineapple" in Field1.

6) Automation produces correct value of "Apple","Banana","Grape","Pineapple"

Nathaniel_Grano_0-1671555438323.png

What were the steps you followed that led to the wrong outcome?

Hi @Nathaniel_Grano . Did what you said and it works fine but I also get a little blu with no info inside like in your picture above on record B after the "Beta". Why does that happen? How can you create an automation to remove those itens?Captura de Tela 2023-06-10 às 22.46.29.png

Hi @tsallis,

What's happening is that the automation merges the values from both trigger columns even if one of those columns is empty. To avoid those empty values, you could change the original automation to use several Conditional Actions instead of a single "Update Record" action. To do this, make the following changes:

  1. Delete the "Update Record" action
  2. Create a Conditional Action with the condition "If [field 1] is empty AND [field 2] is empty" (where field 1 and 2 are the trigger columns) and for the action choose Update Record to update the merged column with an empty value
  3. Create second Conditional Action with the condition "If [field 1] is empty" (where [field 1] is the first of the two trigger columns) and for the action Update Record with only the value from [field 2]
  4. Create a third Conditional Action with the condition "If [field 2] is empty" then Update Record with only the value from [field 1]
  5. Finally, create a 4th Conditional Action with the default "Otherwise" condition, and then Update Record with the both the [field 1] and [field 2] values from the original example.

 

 

tsallis
6 - Interface Innovator
6 - Interface Innovator

I will try that but I am afraid because I am combining 6 different fields. I am guessing it will be a very long automation to write...rsrsrs. Would you try a different approach?
Is there a way to make an automation that removes those itens instead?
Thanks for the help

ThanhLong
5 - Automation Enthusiast
5 - Automation Enthusiast

I have the same issue; this would require too many rules. The only remedy right now is occasionally removing the blank option from the multi-select field...

Nathaniel_Grano
8 - Airtable Astronomer
8 - Airtable Astronomer

If you are on a higher-tiered plan, you could certainly use a script action to combine the fields, ignoring blank ones.

Here's an alternative approach that doesn't require scripts that seems to work:

  1. Clear out the current values in merged multi-select field
  2. Add two formula fields named "Calculation" and "Trim" (you can do this with a single formula but it gets a little messy)
  3. In the first formula field ("Calculation"):
    IF({Field 1},{Field 1} & ", ", "" ) & 
    IF({Field 2},{Field 2} & ", ", "" ) &
    IF({Field 3},{Field 3} & ", ", "")

    extend this formula for as many fields as you are trying to merge
  4. In the second formula field ("Trim"):
    IF(LEN({Calculation})>0, LEFT({Calculation},LEN({Calculation})-2), "")

  5. Update/replace your automation to the following:
    When the Trim field is updated, update the Merge field with the value from the Trim field

Explanation:
When multi-select values are copied into a text/formula column, you get a comma-separated list. Our "Calculation" formula combines all of the fields together, adding commas to stitch them together, but skipping fields that have no values. This means calculation will always either be empty or a list of values ending with ", ".
The "Trim" formula removes the trailing ", " if Calculation is not empty.
Our updated automation simply copies the trimmed, merged string back into the multiselect merge field, which does the deduplication work for us automatically.

Edited to correct the TRIM formula 2023-07-24

tsallis
6 - Interface Innovator
6 - Interface Innovator

It worked! This is the final formula I use! Tks a lot for the help! That was a classy move ....rsrsrs

 
IF({Detalhe Gestão Geral},{Detalhe Gestão Geral} & ", ", "" )
&
IF({Detalhe Finanças},{Detalhe Finanças} & ", ", "" )
&
IF({Detalhe Marketing},{Detalhe Marketing} & ", ", "" )
&
IF({Detalhe Comercial},{Detalhe Comercial} & ", ", "" )
&
IF({Detalhe Tecnologia},{Detalhe Tecnologia} & ", ", "" )
&
IF({Detalhe Recursos Humanos},{Detalhe Recursos Humanos} & ", ", "" )
&
IF({Detalhe Operações},{Detalhe Operações} & ", ", "" )
&
IF({Detalhe Jurídico},{Detalhe Jurídico} & ", ", "" )

 

Hi Im trying this as well but the

IF(LEN({Calculation})>0, LEFT({Calculation},LEN({Calculation})-2, "")
 
says invalid. Have a workaround?
 
I have a field where we type various urls for ex.
 
google.com
msn.com
endi.com
 
and we want the same result to have these urls that are in that cell be divided as a multiple select. Can you advice? We dont use commas to separate them the urls go under each other