A melhor maneira de remover zeros à esquerda de um valor não numérico no Excel

11

Eu tenho muitas células em uma planilha do Excel, usando 9 caracteres de 0-9 e A-Z, que possuem alguns zeros prefixados:

000000123 
000001DA2 
0000009Q5
0000L210A
0000014A0
0000A5500
00K002200

Gostaria de remover os zeros à esquerda para que os valores se tornem:

123 
1DA2 
9Q5
L210A
14A0
A5500
K002200

Como eu faria isso em uma fórmula do Excel? Eu prefiro evitar o uso de uma macro VBA.

    
por Chris Farmer 17.09.2009 / 20:53

5 respostas

13

Veja uma solução com uso intensivo de células, mas correta.

Coloque seus dados na coluna A.

Em B1, coloque a fórmula:

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

Isso verifica um único zero inicial e o remove.

Copie esta fórmula para a direita com tantas colunas quantas forem os caracteres em seus dados (9, nesse caso, você sairá para a coluna J). Copie-o para cada linha de dados.

A última coluna contém seus dados, sem zeros à esquerda.

    
por 17.09.2009 / 22:12
6

A fórmula a seguir não precisa de células adicionais nem precisa ser inserida como uma fórmula de matriz:

=RIGHT(A1,LEN(A1)-FIND(LEFT(SUBSTITUTE(A1&" ","0",""),1),A1&" ")+1)

Se um único zero for retornado para strings como 0 ou 00 , a seguinte fórmula pode ser usada:

=IF(A1="","",RIGHT(A1,LEN(A1)-FIND(LEFT(SUBSTITUTE(LEFT(A1,LEN(A1)-1)&" ","0",""),1),LEFT(A1,LEN(A1)-1)&" ")+1))
    
por 02.08.2015 / 15:27
5

Este é um problema difícil de se fazer com uma função de planilha. O seguinte fará o truque, mas somente se os zeros que não estão liderando vierem apenas um de cada vez, e não houver zeros à direita nem espaços incorporados.

Ele substitui todos os zeros por espaços, apara-os (todos com exceção de espaços simples incorporados) e, em seguida, substitui os zeros.

=SUBSTITUTE(TRIM(SUBSTITUTE(A1,"0"," "))," ","0")
    
por 17.09.2009 / 21:38
5

Esta solução funciona para valores de entrada com exatamente nove caracteres.

Primeiro, configure uma tabela de dez linhas fixas que contenha os seguintes números formatados como texto.

000000000

000000001

000000010

000000100

000001000

000010000

000100000

001000000

010000000

100000000

Digamos que a tabela esteja nas células A1 a 'A10

digamos que seu valor de entrada esteja na célula B1 e sua célula de resultado seja C1

Use a seguinte fórmula na célula C1

= DIREITA (B1, CORRESPONDÊNCIA (B1, $ A $ 1: $ A $ 10,1) -1)

    
por 18.09.2009 / 01:04
4

Para dados em A1, use a seguinte fórmula:

=RIGHT(A1,LEN(A1)-MAX((FINDB(REPT("0",ROW(A$1:A$100)),A1 & "-" & REPT("0",100))=1)*ROW(A$1:A$100)))

inserindo Ctrl + Shift + Enter. Funciona para strings de até 100 caracteres.

    
por 20.09.2009 / 21:11