ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   Find first numeric value in text string (https://www.excelbanter.com/excel-worksheet-functions/50564-find-first-numeric-value-text-string.html)

Rbp9ad

Find first numeric value in text string
 
I need a formula that returns the account number and only the account number
from a text string that looks like this.
BAN 123456 10/1/05-10/31/05
or
ACCT 78-910 9/25/05 - 10/26/05
or
111213 1415 9/7/05 - 10/6/05
the formula that I have so far is this.
=TRIM(MID(TRIM(RRLookup(A9,11)),FIND("9",TRIM(RRLo okup(A9,11))),FIND("/",RRLookup(A9,11))-2))
RRLookup is a custom function that returns text strings like the examples.
This formula is for an account number that begins with 9.
I want it to be more general and just start at the first numeric character.
Is there a way to do this?



Biff

Hi!

BAN 123456 10/1/05-10/31/05
ACCT 78-910 9/25/05 - 10/26/05
111213 1415 9/7/05 - 10/6/05


Where does the account number end in the 3rd example?

If all strings were like the first 2 this would be relatively easy. If the
account number always ends before the 2nd space this should not be too
difficult. Find the 1st digit, find the 2nd space, return everything
between. But, if some stings might look like this:

ACCT 111213 1415 9/7/05 - 10/6/05
BAN 123456 10/1/05-10/31/05
ACCT 78-910 9/25/05 - 10/26/05
111213 1415 9/7/05 - 10/6/05
XX 111213 1415 04 9/7/05 - 10/6/05

There may be too many variables to consider.

Biff

"Rbp9ad" wrote in message
...
I need a formula that returns the account number and only the account
number from a text string that looks like this.
BAN 123456 10/1/05-10/31/05
or
ACCT 78-910 9/25/05 - 10/26/05
or
111213 1415 9/7/05 - 10/6/05
the formula that I have so far is this.
=TRIM(MID(TRIM(RRLookup(A9,11)),FIND("9",TRIM(RRLo okup(A9,11))),FIND("/",RRLookup(A9,11))-2))
RRLookup is a custom function that returns text strings like the examples.
This formula is for an account number that begins with 9.
I want it to be more general and just start at the first numeric
character. Is there a way to do this?





Rbp9ad

The account numbers are quite variable because they are from different
vendors, but we have many account numbers with each vendor. The account
number will always start at the first numeric value and end one or two
spaces before the first / for the date. I want to drop the ACCT or BAN or
Bill No. that appears in front of these numbers and the dates that are after
them. If this can not be done then could you explain to me how to return the
position in a string of the nth occurence of a character so I can write a
formula for each vendor (Account numbers from the same vendor always have
the same format).
"Biff" wrote in message
...
Hi!

BAN 123456 10/1/05-10/31/05
ACCT 78-910 9/25/05 - 10/26/05
111213 1415 9/7/05 - 10/6/05


Where does the account number end in the 3rd example?

If all strings were like the first 2 this would be relatively easy. If the
account number always ends before the 2nd space this should not be too
difficult. Find the 1st digit, find the 2nd space, return everything
between. But, if some stings might look like this:

ACCT 111213 1415 9/7/05 - 10/6/05
BAN 123456 10/1/05-10/31/05
ACCT 78-910 9/25/05 - 10/26/05
111213 1415 9/7/05 - 10/6/05
XX 111213 1415 04 9/7/05 - 10/6/05

There may be too many variables to consider.

Biff

"Rbp9ad" wrote in message
...
I need a formula that returns the account number and only the account
number from a text string that looks like this.
BAN 123456 10/1/05-10/31/05
or
ACCT 78-910 9/25/05 - 10/26/05
or
111213 1415 9/7/05 - 10/6/05
the formula that I have so far is this.
=TRIM(MID(TRIM(RRLookup(A9,11)),FIND("9",TRIM(RRLo okup(A9,11))),FIND("/",RRLookup(A9,11))-2))
RRLookup is a custom function that returns text strings like the
examples. This formula is for an account number that begins with 9.
I want it to be more general and just start at the first numeric
character. Is there a way to do this?







Domenic

Maybe...

=TRIM(MID(A1,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A1&" 0123456789")),(FIND("/"
,A1)-3)-(MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A1&"0123456789") )-1)))

Hope this helps!

In article ,
"Rbp9ad" wrote:

I need a formula that returns the account number and only the account number
from a text string that looks like this.
BAN 123456 10/1/05-10/31/05
or
ACCT 78-910 9/25/05 - 10/26/05
or
111213 1415 9/7/05 - 10/6/05
the formula that I have so far is this.
=TRIM(MID(TRIM(RRLookup(A9,11)),FIND("9",TRIM(RRLo okup(A9,11))),FIND("/",RRLoo
kup(A9,11))-2))
RRLookup is a custom function that returns text strings like the examples.
This formula is for an account number that begins with 9.
I want it to be more general and just start at the first numeric character.
Is there a way to do this?


Biff

Try Domenic's suggestion. It looks like it should work.

could you explain to me how to return the position in a string of the nth
occurence of a character


Assuming you know how many instances of the character there a

Using this string as an example:

ACCT 111213 1415 9/7/05 - 10/6/05

=FIND("~",SUBSTITUTE(A1,"/","~",4))

Returns the position of the 4th "/".

Basically, what that does is substitutes the nth instance of "/" with "~"
and uses the "~" as a "unique marker" for the Find function. I used the
tilde character as it's a character that is not likely to appear in the
string.

To find out how many instances of any character there are in a string:

=LEN(A1)-LEN(SUBSTITUTE(A1,"character_to_count",""))

Biff

"Rbp9ad" wrote in message
...
The account numbers are quite variable because they are from different
vendors, but we have many account numbers with each vendor. The account
number will always start at the first numeric value and end one or two
spaces before the first / for the date. I want to drop the ACCT or BAN or
Bill No. that appears in front of these numbers and the dates that are
after them. If this can not be done then could you explain to me how to
return the position in a string of the nth occurence of a character so I
can write a formula for each vendor (Account numbers from the same vendor
always have the same format).
"Biff" wrote in message
...
Hi!

BAN 123456 10/1/05-10/31/05
ACCT 78-910 9/25/05 - 10/26/05
111213 1415 9/7/05 - 10/6/05


Where does the account number end in the 3rd example?

If all strings were like the first 2 this would be relatively easy. If
the account number always ends before the 2nd space this should not be
too difficult. Find the 1st digit, find the 2nd space, return everything
between. But, if some stings might look like this:

ACCT 111213 1415 9/7/05 - 10/6/05
BAN 123456 10/1/05-10/31/05
ACCT 78-910 9/25/05 - 10/26/05
111213 1415 9/7/05 - 10/6/05
XX 111213 1415 04 9/7/05 - 10/6/05

There may be too many variables to consider.

Biff

"Rbp9ad" wrote in message
...
I need a formula that returns the account number and only the account
number from a text string that looks like this.
BAN 123456 10/1/05-10/31/05
or
ACCT 78-910 9/25/05 - 10/26/05
or
111213 1415 9/7/05 - 10/6/05
the formula that I have so far is this.
=TRIM(MID(TRIM(RRLookup(A9,11)),FIND("9",TRIM(RRLo okup(A9,11))),FIND("/",RRLookup(A9,11))-2))
RRLookup is a custom function that returns text strings like the
examples. This formula is for an account number that begins with 9.
I want it to be more general and just start at the first numeric
character. Is there a way to do this?










All times are GMT +1. The time now is 07:27 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com