Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / New Users / April 2008

Tip: Looking for answers? Try searching our database.

remove leading zeros on a text field

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
skiing - 29 Apr 2008 17:48 GMT
I have an item number field which I use a formula to pull the last
segment of the item number field
( such as:  WBN-2-FCCG-043-00000094 or  WBN-2-IVSG-043-0001A-A )

the results would be a text field such as   00000094   or    0001A-A
or    0230-B

I need to find a way to remove the leading 0's

does anyone have any ideas?

thank you for your time and assistance
Niek Otten - 29 Apr 2008 18:00 GMT
=VALUE(A1) or, if you want to keep it text, =TEXT(VALUE(A1),"#")

Signature

Kind regards,

Niek Otten
Microsoft MVP - Excel

|I have an item number field which I use a formula to pull the last
| segment of the item number field
[quoted text clipped - 8 lines]
|
| thank you for your time and assistance
Bernie Deitrick - 29 Apr 2008 18:09 GMT
Niek,

That won't work with the trailing letters...

Bernie
MS Excel MVP

> =VALUE(A1) or, if you want to keep it text, =TEXT(VALUE(A1),"#")
>
[quoted text clipped - 10 lines]
> |
> | thank you for your time and assistance
Niek Otten - 29 Apr 2008 18:12 GMT
Thanks, Bernie,

You're right! I just looked at the first example.........

Signature

Kind regards,

Niek Otten
Microsoft MVP - Excel

| Niek,
|
[quoted text clipped - 17 lines]
| > |
| > | thank you for your time and assistance
skiing - 29 Apr 2008 18:11 GMT
I tried the Value function and it worked great on the 00000094 like
items -- but on the 0001A-A items the results were #VALUE! --

when I tried the =TEXT(VALUE(A1),"#") it bombed as well due to the
Value(A1) bombing

any other suggestions?

THANKS !

> =VALUE(A1) or, if you want to keep it text, =TEXT(VALUE(A1),"#")
>
[quoted text clipped - 16 lines]
> |
> | thank you for your time and assistance
Bernie Deitrick - 29 Apr 2008 18:09 GMT
t.r.,

What is the definition of "last segment"?  I would think that WBN-2-IVSG-043-0001A-A's last segment
would be "A"...

Anyway, if the formula that you use to extract the last segment is in cell B2 (based on whatever
rules you actually require), then array enter this formula (enter using Ctrl-Shift-Enter) to remove
the leading zeroes:

=MID(B2,MAX((LEFT(B2,ROW(INDIRECT("1:" & LEN(B2))))=REPT("0",ROW(INDIRECT("1:" &
LEN(B2)))))*ROW(INDIRECT("1:" & LEN(B2))))+1,LEN(B2))

HTH,
Bernie
MS Excel MVP

>I have an item number field which I use a formula to pull the last
> segment of the item number field
[quoted text clipped - 8 lines]
>
> thank you for your time and assistance
skiing - 29 Apr 2008 19:53 GMT
Bernie

I do not know how to array enter this formula - I copied and pasted it
and used it in a cell - it did remove the leading 0 on the cell
defined but how do I repeatedly do this?

thank you again - so much !

On Apr 29, 1:09 pm, "Bernie Deitrick" <deitbe @ consumer dot org>
wrote:
> t.r.,
>
[quoted text clipped - 26 lines]
>
> - Show quoted text -
Rick Rothstein (MVP - VB) - 29 Apr 2008 19:55 GMT
Is there **always** digit after the last leading zero (that is, never
something like 000ABC)? If so...

=MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9},A1&"123456789")),99)

Rick

>I have an item number field which I use a formula to pull the last
> segment of the item number field
[quoted text clipped - 8 lines]
>
> thank you for your time and assistance
Rick Rothstein (MVP - VB) - 29 Apr 2008 20:05 GMT
If you can have the situation where only non-digits follow the leading
zeroes, then this formula should work for this general case...

=IF(MIN(FIND({1,2,3,4,5,6,7,8,9},A1&"123456789"))<=LEN(A1),MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9},A1&"123456789")),99),SUBSTITUTE(A1,"0",""))

Rick

> Is there **always** digit after the last leading zero (that is, never
> something like 000ABC)? If so...
[quoted text clipped - 15 lines]
>>
>> thank you for your time and assistance
Rick Rothstein (MVP - VB) - 29 Apr 2008 20:28 GMT
Forget this general solution (but if you don't have this situation, still
use my first posted formula)... it won't work if one or more zeroes can
follow the first non-digit.

Rick

> If you can have the situation where only non-digits follow the leading
> zeroes, then this formula should work for this general case...
[quoted text clipped - 22 lines]
>>>
>>> thank you for your time and assistance
skiing - 29 Apr 2008 22:40 GMT
Wonderful Rick

and Gosh I hate to ask but could you explain how it works -

I think the Find({1,2,3,4,5,6,7,8,9} is an array function - I believe
it uses the &"123456789" constant
but I am really confused as to the MIN function and the 99 value and
just basically how the formula flows.

I can use this constantly - if I understand it

THANK YOU SOOOOO MUCH !

On Apr 29, 2:55 pm, "Rick Rothstein \(MVP - VB\)"
<rick.newsNO.S...@NO.SPAMverizon.net> wrote:
> Is there **always** digit after the last leading zero (that is, never
> something like 000ABC)? If so...
[quoted text clipped - 17 lines]
>
> - Show quoted text -
Rick Rothstein (MVP - VB) - 30 Apr 2008 05:57 GMT
See inline comments...

> I can use this constantly - if I understand it

Before you go and use this everywhere, remember that it was designed for
your specific case... in effect, find the first digit that is not a zero
(notice that the array and listing of digits do not have a zero in them),
which is also why I said this formula only applies IF the first character
after the leading zeroes is a digit (it will fail to work correctly if a
non-digit ever follows the leading zeroes).

> and Gosh I hate to ask but could you explain how it works -

I'll try.

> I think the Find({1,2,3,4,5,6,7,8,9} is an array function - I believe
> it uses the &"123456789" constant
> but I am really confused as to the MIN function and the 99 value and
> just basically how the formula flows.

I guess the best place to start is by giving an overview of what the formula
does. It finds the location of the first non-zero digit within the text and
uses that to find the starting point for pulling out the text you wanted. It
uses the MID function to get pull out a sub-string from the main piece of
text. The format of the MID function is...

MID(YourText, StartingPoint, NumberOfCharactersAfterStartingPoint)

We will describe how to get the StartingPoint (the location of the first
non-zero) in a moment; but, once you have it, you wanted that digit along
with the remainder of the text after it. We don't know how many characters
that will be as the number of leading zeroes can vary; however, there is no
problem in asking for more characters than exist, so I took a guess that
your text will never be longer than 99 characters (which is why the last
value is 99... it is the 3rd argument of the MID function). Okay, so how do
we get the StartingPoint. We use ths code...

MIN(FIND({1,2,3,4,5,6,7,8,9},A1&"123456789"))

And how does that work. First off, we note that the FIND function cannot
process an array (values contained within curly braces); however, the MIN
can and so, embedding an array or a function call with an array (even if
that function can't normally handle arrays) within it forces the array to
get processed. This happens be feeding each array element into its encasing
function (the FIND function in this case) one at a time so that the MIN
function can determine which evaluated value is the smallest. So, the MIN
function is forcing these evaluations to take place...

FIND(1,A1&"123456789")
FIND(1,A1&"123456789")
FIND(1,A1&"123456789")
FIND(1,A1&"123456789")

> > Is there **always** digit after the last leading zero (that is, never
> > something like 000ABC)? If so...
[quoted text clipped - 11 lines]
> > >
> > > does anyone have any ideas?
Dave Mills - 29 Apr 2008 23:55 GMT
>I have an item number field which I use a formula to pull the last
>segment of the item number field
[quoted text clipped - 8 lines]
>
>thank you for your time and assistance

Use VBA
Enter in a module:

Function RemoveLeadingZeros(strInput)
 RemoveLeadingZeros = strInput
 Do While Left(RemoveLeadingZeros, 1) = "0"
   RemoveLeadingZeros = Mid(RemoveLeadingZeros, 2)
 Loop
End Function

See Excel help "Create your own worksheet functions"

Then in the worksheet
Cell A1 = 00000A
Cell A2.formula = RemoveLeadingZeros(A1)
Signature

Dave Mills
There are 10 type of people, those that understand binary and those that don't.


Rate this thread:






 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.