Delete rightmost zeroes

G

gcotterl

How can I delete all of the zeroes to the right of the last 9 in each
row?

For example, here are some rows:

0000000000000000000009990000000
0000000099099000000000000000000
9999000000000000000000000000000
0000000000000000000000000099900
0000000000000099999990000000000
0900000000000000000000000000000
0000000000000000099999000000000

This is result I'm looking for:

000000000000000000000999
0000000099099
9999
00000000000000000000000000999
000000000000009999999
09
0000000000000000099999

Then, how do I find the longest row?
 
D

Don Guillett

Sub deleterightzerosSAS() 'assumes TEXT formatting
For Each c In _
Range("a1:a" & Cells(Rows.Count, 1).End(xlUp).Row)
c.Value = Left(c, InStrRev(c, 9))
If Len(c) > lenc Then
maxrow = c.Row
lenc = Len(c)
End If
Next c
MsgBox "max " & lenc & " found at row " & maxrow
End Sub
 
B

Bruno Campanini

gcotterl has brought this to us :
How can I delete all of the zeroes to the right of the last 9 in each
row?

For example, here are some rows:

0000000000000000000009990000000
0000000099099000000000000000000
9999000000000000000000000000000
0000000000000000000000000099900
0000000000000099999990000000000
0900000000000000000000000000000
0000000000000000099999000000000

This is result I'm looking for:

000000000000000000000999
0000000099099
9999
00000000000000000000000000999
000000000000009999999
09
0000000000000000099999

Then, how do I find the longest row?

If you want to preserve leftmost zeroes, please modify
Don Guillet's formula as follows:

For Each c In Range("a1:a" & Cells(Rows.Count, 1).End(xlUp).Row)
c.Value = "'" & Left(c, InStrRev(c, 9))
If Len(c) > lenc Then
maxrow = c.Row
lenc = Len(c)
End If
Next c
MsgBox "max " & lenc & " found at row " & maxrow

Bruno
 
D

Don Guillett

gcotterl has brought this to us :











If you want to preserve leftmost zeroes, please modify
Don Guillet's formula as follows:

For Each c In Range("a1:a" & Cells(Rows.Count, 1).End(xlUp).Row)
    c.Value = "'" & Left(c, InStrRev(c, 9))
    If Len(c) > lenc Then
        maxrow = c.Row
        lenc = Len(c)
    End If
Next c
MsgBox "max " & lenc & " found at row " & maxrow

Bruno

Didn't need that. I thought I qualified mine with
'assumes TEXT formatting
 
R

Ron Rosenfeld

How can I delete all of the zeroes to the right of the last 9 in each
row?

For example, here are some rows:

0000000000000000000009990000000
0000000099099000000000000000000
9999000000000000000000000000000
0000000000000000000000000099900
0000000000000099999990000000000
0900000000000000000000000000000
0000000000000000099999000000000

This is result I'm looking for:

000000000000000000000999
0000000099099
9999
00000000000000000000000000999
000000000000009999999
09
0000000000000000099999


Assuming by "row" you mean "cell"

You can do this with a worksheet formula also:

If your data starts in A1, then:

B2: =LEFT(A1,LOOKUP(2,1/(MID(A1,ROW(INDIRECT("1:99")),1)="9"),ROW(INDIRECT("1:99"))))

and fill down as far as required. Just make sure the "99" is at least as long as the longest string in the sequence.


Then, how do I find the longest row?

If your above formula results are in, for example, B1:B7, then:

This formula must be **array-entered**:

=MATCH(MAX(LEN(B1:B7)),LEN(B1:B7),0)

----------------------------------------

To **array-enter** a formula, after entering
the formula into the cell or formula bar, hold down
<ctrl><shift> while hitting <enter>. If you did this
correctly, Excel will place braces {...} around the formula.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top