# Formula for extracting last text/digits from a code

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.

Chris

``````RIGHT({Field name}, 8)
``````

More formula reference:

1 Like

Thanks so much! worked like a charm

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!

I can’t think of a way to extract that number because there are too many inconsistencies in the formatting.

1. The characters before the dollar amount include an inconsistent number of spaces, so splitting by spaces isn’t reliable.
2. The leading characters also might contain numbers, so it’s not as easy as wrapping VALUE() around the whole thing.
3. The dollar values can be small or large, positive or negative, so extracting a consistent number of characters from the end of the string (after stripping off the " N") won’t work.

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.

I knew it would be a challenge, thanks for your help!

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.

Justin,

You are an Airtable Jedi! The force are with you, it works!

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.

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)))``

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)))

When a field name contains spaces, it must be wrapped in curly braces (like how that rhymes?) 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".
``````

Justin,

It works, thanks a million!

Hello, I would like some help to use trim, please see the image, thanks!

Welcome to the community, @Laura_Flores! 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()`. 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.

Thanks so much Justin!! I appreciate your help!