Excel: como remover os caracteres iniciais de uma string com uma função?

2

Eu tenho uma coluna de texto no Excel cheia de valores hexadêmicos como este:

0000000000000c10
00000000000036f0
00000000000274da
00000000000379e0

Qual função pode me ajudar a remover os 0s iniciais até o primeiro caractere não-0? Saída desejada:

c10
36f0
274da
379e0

Isso me ajudaria a alimentar a função HEX2DEC.

    
por DavidD 27.11.2014 / 14:11

2 respostas

3

Outra abordagem seria converter em decimal e voltar novamente. A função de planilha HEX2DEC aceitará apenas 10 dígitos / caracteres como entrada, mas RIGHT cuidará disso. Converter instantaneamente de volta com DEC2HEX (deixando o parâmetro opcional [locais] fora da equação) deve resultar em um valor HEX aparado.

A fórmula em B1 é

=DEC2HEX(HEX2DEC(RIGHT(A1,10)))

Preencha conforme necessário. A função DEC2HEX pode preencher zeros à esquerda até 10 locais, mas se você precisar dos zeros à esquerda para um máximo de 16 dígitos, então

=RIGHT(REPT(0, 16)&B1, 16)

    
por 28.11.2014 / 07:35
3

Ok, achei.

Assumindo que os valores estão em uma tabela e sua coluna é denominada "Coluna1":

=REPLACE([@Column1],1,FIND(LEFT(SUBSTITUTE([@Column1],"0","")),[@Column1])-1,"")

Isso produzirá a saída desejada, conforme mostrado na pergunta.

O núcleo da solução é tratado por essa fórmula, que conta os 0s antes do valor de texto que estamos procurando.

=FIND(LEFT(SUBSTITUTE([@Column1],"0","")),[@Column1])-1
    
por 27.11.2014 / 17:02