Nov 23, 2019 03:32 AM
From this:
animals > cat > face > eyes
into
Animals/Cat/Face/Eyes
how can i do that i know the first step:
SUBSTITUTE({Category 1}, ’ > ', ‘/’) // this replaces the > into /
and then how can i use the upper case method only for the first letter of every word?
thanks for the help
please write an example code, thanks!
Nov 25, 2019 05:51 AM
Long story short, Airtable’s formulas won’t let you do what you want. You need the ability to iterate through a collection and perform a specific operation on each item in that collection, which can’t currently happen with existing formula tools.
Depending on how you’re getting the original string, though, you might be able to do the first-letter capitalization elsewhere in the process. Are you receiving the source string (animals > cat > face > eyes) from an external source, or somewhere else in the same base?
EDIT: Not sure why I said it’s not possible. It can be done, but it’s going to take a collection of formulas.
Nov 27, 2019 12:26 AM
Yes i received only this: animals > cat > face > eyes
Nov 27, 2019 12:27 AM
From a external source
Nov 27, 2019 05:59 AM
In that case your only options are to either do the capitalization in that external source before it gets to Airtable, or to use some form of integration—either custom code that uses the API, or a tool like Zapier or Integromat—to process the text.
Nov 27, 2019 06:49 AM
Airtable works like a spreadsheet but gives you the power of a database to organize anything. Sign up for free.
Nov 27, 2019 06:58 AM
but i dont understand the full code…
Nov 27, 2019 10:58 AM
I can’t see the formulas in that base because it’s shared as read-only, so I’m afraid I can’t help.
Nov 27, 2019 10:59 AM
Looking deeper, methinks that’s a product of @W_Vann_Hall. Perhaps he can shed some light on this situation.
Nov 29, 2019 12:25 AM
That link doesn’t open up a specific base. It just takes me to my own workspace page.
Nov 29, 2019 02:38 AM
Nov 29, 2019 03:06 AM
Modifying that setup to work in your situation is definitely doable, though the biggest issue you need to consider is how many pieces you need to capitalize. Will it always be 4, or could there be more in some cases? If more, what’s the maximum number of pieces?
Nov 29, 2019 03:13 AM
3-8 words
example 1: nonfiction > nature > animal rights
example 2: nonfiction > technology & engineering > agriculture > animal husbandry > Test
Nov 29, 2019 03:21 AM
Based on those samples, which output do you want?
Option 1: only capitalize the first word in each section
example 1: Nonfiction/Nature/Animal rights
example 2: Nonfiction/Technology & engineering/Agriculture/Animal husbandry/Test
…OR…
Option 2: capitalize all words
example 1: Nonfiction/Nature/Animal Rights
example 2: Nonfiction/Technology & Engineering/Agriculture/Animal Husbandry/Test
I’ve got some thoughts on how to simplify the setup in that example base you shared that will make Option 1 a little easier. Option 2 is a lot more complex because each subsection needs individual words capitalized, including logic to find those words with or without separators.
Nov 29, 2019 03:48 AM
Here’s a version that outputs Option 1 based on my description above, and supports up to 8 sections.
Nov 29, 2019 06:50 AM
i need to capitalize all Words :slightly_smiling_face: )
Nov 29, 2019 06:51 AM
can you send me the code?
I will love you so much!
Nov 29, 2019 07:14 AM
Here’s a link to a test base where I built the setup shown above:
I’m afraid that I don’t have time to delve into this more deeply to create Option 2. By studying this version and the one made by @W_Vann_Hall you can probably figure out how to capitalize all words in each part.
Personally, though, I would enlist the help of external tools. For example, Zapier has a “Code by Zapier” app where you can write custom code that operates on zap data. Make a zap that takes the data from your source, processes it to capitalize all words (hint: use the .title()
string method in Python) and change the separators (hint: use the .split()
and .join()
Python string methods), then feed the data into Airtable. Or pull the data from Airtable, process it, then replace the old version with the capitalized version.
Mar 11, 2020 09:59 AM
This could now be done with the new scripting block as well. It would require manually running the script whenever new data needs to be processed, but it keeps everything inside Airtable if that’s your preference.
Jul 29, 2021 02:04 PM
@airtableManuel You can do this with this formula:
REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE(REGEX_REPLACE({YOUR FIELD NAME}, "^a", "A"), "^b", "B"), "^c", "C"), "^d", "D"), "^e", "E"), "^f", "F"), "^g", "G"), "^h", "H"), "^i", "I"), "^j", "J"), "^k", "K"), "^l", "L"), "^m", "M"), "^n", "N"), "^o", "O"), "^p", "P"), "^q", "Q"), "^r", "R"), "^s", "S"), "^t", "T"), "^u", "U"), "^v", "V"), "^w", "W"), "^x", "X"), "^y", "Y"), "^z", "Z"), " a", " A"), " b", " B"), " c", " C"), " d", " D"), " e", " E"), " f", " F"), " g", " G"), " h", " H"), " i", " I"), " j", " J"), " k", " K"), " l", " L"), " m", " M"), " n", " N"), " o", " O"), " p", " P"), " q", " Q"), " r", " R"), " s", " S"), " t", " T"), " u", " U"), " v", " V"), " w", " W"), " x", " X"), " y", " Y"), " z", " Z")