Forum Discussion
Rachwar30
Sep 02, 2022Copper Contributor
Extracting numbers before string characters start
Hi all, I am looking for an excel formula that can help me to extract numbers only from a mix of numbers and characters ONLY before the first character starts (i.e sometimes there are numbers aft...
- Sep 02, 2022
Presuming your text is in A2, you might use:
=LEFT(A2,MIN(IFERROR(SEARCH(CHAR(SEQUENCE(26,,65,1)),A2),""))-1)
Patrick2788
Sep 02, 2022Silver Contributor
Presuming your text is in A2, you might use:
=LEFT(A2,MIN(IFERROR(SEARCH(CHAR(SEQUENCE(26,,65,1)),A2),""))-1)
- Rachwar30Sep 02, 2022Copper ContributorThis worked, thank you!
- Patrick2788Sep 02, 2022Silver ContributorGlad it worked. Have a great weekend!
- Chris1Aug 04, 2023Copper ContributorThis will fail if the string is only numeric, correct?
- Patrick2788Aug 04, 2023Silver Contributor
This formula satisfies the OP's original request. It's a bit smaller than the previous solution:
=LET( letters, CHAR(SEQUENCE(26, , 65)), 1 * TEXTBEFORE(A2, letters, , , , A2) )
This formula pulls all numbers from a string, regardless of position:
=LET( n, LEN(A2), arr, 1 * MID(A2, SEQUENCE(n), 1), 1 * TEXTJOIN(, , TOCOL(arr, 2)) )
If you need something different, you could create a new discussion.
- mtarlerAug 04, 2023Silver Contributor
Patrick2788 Or we could use the NOT of the NOT approach to define what we want to keep and hence not restrict the exclusion to just capital letters:
numbers before:
=LET(in,A1, nums, SEQUENCE(10,,0), noNums, INDEX(TEXTSPLIT(in, nums,,1),1), TEXTBEFORE(in,noNums,1))
all numbers:
=LET(in,A1, nums, SEQUENCE(10,,0), noNums, TEXTSPLIT(in, nums,,1), CONCAT(TEXTSPLIT(in,noNums)))