May 27, 2019 06:49 PM
hi i have a column with codes like this “0010o00002Fs719AAB”
What will the formula to extract the 8 of the code?
it should become Fs719AAB.
Thanks in advance!
Chris
May 27, 2019 07:20 PM
RIGHT({Field name}, 8)
More formula reference:
May 27, 2019 07:40 PM
Thanks so much! worked like a charm
Aug 05, 2019 12:05 AM
Hi,
I have three examples below. What code required to extract just the dollar amount for all three examples?
WEEKLY PAY 9888.95 N
FULL TANK-FUEL -80.00 N
T8IPK68700 300.00 N
Thanks!
Aug 05, 2019 08:36 PM
I can’t think of a way to extract that number because there are too many inconsistencies in the formatting.
There may be a way to do it by running a bunch of nested tests to check for various combinations of separating spaces, but IMO it would be more of a headache than it’s worth.
Aug 05, 2019 09:15 PM
I knew it would be a challenge, thanks for your help!
Aug 06, 2019 03:31 AM
Okay, I don’t know what it is lately, but the past two days I’ve woken up with solutions to certain problems in my head, and today it was this one. I recalled a trick I’d seen elsewhere, and it works quite well in this case. Here’s the formula to extract that value. {Text}
is my field where I put the source text; change it to match your own field name:
VALUE(TRIM(RIGHT(SUBSTITUTE(SUBSTITUTE(Text, " N", ""), " ", REPT(" ", 10)), 12)))
At first it might look like the decimals are being ignored, but they’re not. That’s just formatting. Format the field as currency ,or decimal with two places, and you’ll see them.
Aug 06, 2019 05:04 AM
Justin,
You are an Airtable Jedi! The force are with you, it works!
Aug 06, 2019 05:17 AM
Hi Justin,
How would you re-write the code so that it will works my other text lines that ending with A, S or something else? I have all these in the same field.
Aug 06, 2019 05:24 AM
This should work, as long as the amount to trim off the right end is always two characters (i.e. a space and a single letter).
VALUE(TRIM(RIGHT(SUBSTITUTE(LEFT(Text, LEN(Text) - 2), " ", REPT(" ", 10)), 12)))
Aug 06, 2019 06:18 PM
Hi Justin,
I’ve tried your revised formula but got an error message. What’s missing?
VALUE(TRIM(RIGHT(SUBSTITUTE(LEFT(Expenses Accounts, LEN(Expenses Accounts) - 2), " “, REPT(” ", 10)), 12)))
Aug 06, 2019 07:29 PM
When a field name contains spaces, it must be wrapped in curly braces (like how that rhymes?) :winking_face: Also, double-check your quotes (unless they just got curled by posting here).
VALUE(TRIM(RIGHT(SUBSTITUTE(LEFT({Expenses Accounts}, LEN({Expenses Accounts}) - 2), " ", REPT(" ", 10)), 12)))
FWIW, to force the forum parser to format text as pre-formatted text, indent single lines with four spaces (as above). For blocks of code, type a triplet of inverted apostrophe characters ( ` ) on their own lines both before and after. The text in this screenshot:
…becomes this when formatted…
This text is pre-formatted.
Some text becomes automatically color-coded this way, like "strings".
Aug 06, 2019 08:20 PM
Justin,
It works, thanks a million!
Sep 12, 2019 12:30 PM
Hello, I would like some help to use trim, please see the image, thanks!
Sep 17, 2019 07:27 PM
Welcome to the community, @Laura_Flores! :grinning_face_with_big_eyes: I’m guessing you’re going for a more general approach—some records might have a different word (or series of words) in place of “FEASIBILITY”, different numbers, etc.—so I built my solution to not look for too many specific features in the text. The only things I’m counting on being consistent are the separators (" - "), and each task name/label ending in a question mark.
To solve this, I actually found it easier to work backwards. As you found, pulling {TASK'S WEIGHT}
off the end with RIGHT()
is easy. From there, I used that extraction to aid in pulling off the number before it for {GATE'S WEIGHT}
, and the combination of those two to extract the text for {GATE}
(“FEASIBILITY”, or whatever text may be after the question but before the first number). And I didn’t need to use TRIM()
. :slightly_smiling_face: Here are my test results:
And here are the formulas. First for {GATE}
:
MID(SUBSTITUTE({PROJECT TASKS}, " - " & {GATE'S WEIGHT} & " - " & {TASK'S WEIGHT}, ""), FIND("? - ", {PROJECT TASKS}) + 4, 50)
Next for {GATE'S WEIGHT}
:
IF({PROJECT TASKS}, VALUE(RIGHT(SUBSTITUTE(SUBSTITUTE({PROJECT TASKS}, " - ", "|"), "|" & {TASK'S WEIGHT}, ""), 2)))
And finally {TASK'S WEIGHT}
:
IF({PROJECT TASKS}, VALUE(RIGHT({PROJECT TASKS}, 2)))
Notice that I wrapped the numerical extractions in VALUE()
to turn them into numbers, in case you want to use those in any other formula calculations.
Sep 20, 2019 09:03 AM
Thanks so much Justin!! I appreciate your help!
Jul 22, 2020 08:34 PM
I agree 100% and I only saw this one solution, where he like woke up and had it. That’s like Jedi Mind trick stuff.
Oct 29, 2020 06:13 AM
Clever! This just saved me a lot of headache :thumbs_up: I can’t count how many of your posts have helped me, thank you so much for your time here!
Jul 15, 2021 12:55 PM
@Justin_Barrett I’m hoping your exceptional skills in this department can help me as well. I am trying to create a formula to automatically pull the value out of a series of currencies and I keep getting an ERROR message, so I’m clearly doing something wrong. The problem is there are several different currencies and value lengths.
Is there a formula I can use to only show the numerical value (including commas) for entries similar to these? I only want the numbers (example: 15,000 and 200,000 - no text or currency symbol)
USD $15,000
USD $200,000
AUD $1,000,000
USD $13,000
CAD $10,000
JPY ¥20,000,000
USD $5,000
Thank you very much in advance!!
Jul 15, 2021 01:29 PM
@Louise_Nightingale Regex to the re(gex)scue! :winking_face:
IF(Currency, REGEX_EXTRACT(Currency, "[\\d,]+"))
Breakdown…
\d
token matches any digit (the extra backslash is required to escape the backslash needed by the token), and the comma matches a literal comma+
at the end tells the interpreter to make that previous match one or more times