Melhor maneira de remover vários zeros à esquerda em valor não numérico no Excel

1

Eu estava lendo sobre "A melhor maneira de remover zeros à esquerda de um valor não numérico no Excel" e adoro a solução fornecida, mas o problema é que, é apenas remover 1 zeros dos zeros anteriores. Preciso encontrar os zeros e removê-los todos. Então, usei essa fórmula e inseri outra instrução if como esta:

=IF( LEFT(S3) = "0", RIGHT(S3, LEN(S3)-1),IF(
    LEFT(S3) = "0",
    RIGHT(S3, LEN(S3)),
    S3))

Mas não funcionou.

user2089542
fonte
O que virá depois do 0, apenas números ou texto também?
Scott Craner
Você precisa endereçar o comprimento máximo de qualquer String de texto e o comprimento máximo do número sem zeros. Vejo soluções criativas, mas todas são hipotéticas fora do seu problema teórico.
ejbytes

Respostas:

0

Você não mencionou o número máximo de "0" esperado em seu valor alfanumérico; portanto, aqui está um exemplo com um máximo de 4 zeros:

=IF(LEFT(A1,4)="0000",RIGHT(A1,LEN(A1)-4), IF(LEFT(A1,3)="000",RIGHT(A1,LEN(A1)-3), IF(LEFT(A1,2)="00",RIGHT(A1,LEN(A1)-2), IF(LEFT(A1,1)="0",RIGHT(A1,LEN(A1)-1), A1))))

Isso lhe dará o próximo resultado:

excluir zeros

Obviamente, se seu valor for um numérico:

=VALUE(A1)

será suficiente.

fernando.reyes
fonte
Muito obrigado fernando por sua ajuda. Isso funcionou muito bem. Obrigado pela sua ajuda.
user2089542
0

Use esta fórmula de matriz:

=MID(A1,MIN(IF(MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1)<>"0",ROW(INDIRECT("1:" & LEN(A1))))),LEN(A1))

Sendo uma fórmula de matriz, ela precisa ser confirmada com Ctrl-Shift-Enter em vez de Enter ao sair do modo de edição. Se feito corretamente, o Excel colocará em {}torno da fórmula.

Ele encontrará o primeiro non 0e o definirá como o primeiro caractere na função MID.

insira a descrição da imagem aqui

Scott Craner
fonte
0

Experimente esta pequena função definida pelo usuário:

Public Function nozero(s As String) As String
    Dim l As Long
    l = Len(s)

    If Left(s, 1) <> "0" Then
        nozero = s
        Exit Function
    End If

    t = s
    While Left(t, 1) = "0"
        t = Mid(t, 2)
    Wend
    nozero = t
End Function
Aluno de Gary
fonte
E se você adicionar Option Explicitao topo seu módulo, poderá usá-lo como uma fórmula local.
ejbytes
@ejbytes Você está correto
Gary's Student
0

Defina um nome que crie uma matriz de números 1:255

seq   refers to:  =ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,255,1))

Em seguida, use esta fórmula inserida mantendo pressionado ctrl + shiftenquanto pressionaEnter

=MID(A1,MATCH(TRUE,MID(A1,seq,1)<>"0",0),99)

insira a descrição da imagem aqui

Ron Rosenfeld
fonte