Concatenando números que possuem zeros à esquerda

2

Estou tentando combinar / concatenar números em colunas diferentes em um número longo. Alguns dos números têm zeros à esquerda devido a formatos personalizados aplicados às células. Quando os concateno juntos, os zeros são removidos. Alguém sabe como a fórmula deve ficar para que os zeros à esquerda não sejam removidos?

Exemplo:
A1 = 08,
B1 = 7,
C1 = 0,
D1 = 17,
E1 = 00,
F1 = 01,
G1 = Número concentrado de A1 para F1

O número resultante deve ser 0870170001 , mas o número a seguir aparece 8701701 .

Estou usando o Excel 2010 e esta é a fórmula que tentei: =CONCATENATE(A1;B1;C1;D1;E1;F1) .

    
por Helpneeded 26.11.2012 / 15:39

2 respostas

2

Você pode não precisar do; mas em vez disso, use uma vírgula para mostrar que cada um é um valor de string separado (isso pode depender das configurações de localização - Obrigado Bob).

=CONCATENATE(A1,B1,C1,D1,E1,F1)

No entanto, você precisará verificar se as células com os números estão formatadas em texto, realçando a linha e, na faixa de opções Início, na guia Número, na lista suspensa, selecione 'Texto'.

    
por 26.11.2012 / 15:41
0

Eu vejo pelo seu comentário que suas células provavelmente têm formatos personalizados, e o valor exibido nessas células provavelmente é diferente do valor inserido (por exemplo, "8" é mostrado como "08"). Nesse caso, você pode concatenar cada valor envolvido em uma função TEXT com o formato especificado da célula. Por exemplo, se A1 tiver o formato personalizado "00", você usaria TEXT(A1,"00") como o termo para A1 em sua fórmula de concatenação. Para a fórmula completa, você pode ter algo assim:

=TEXT(A1,"00")&TEXT(B1,"@")&TEXT(C1,"0")&...

Naturalmente, isso é tedioso, pois exige que você recrie manualmente o formato de cada célula. Se você for usar muito isso com vários formatos variados, eu diria que esta é uma oportunidade perfeita para usar uma função VBA para fazer o trabalho pesado. Você pode colar o seguinte código em um módulo no Editor do VBA (aberto pressionando Alt + F11 ).

Public Function CONCATwFORMATS(rng1 As Range) As String
Dim tmpstr As String, tmpFormat As String
Dim c As Range

For Each c In rng1
    tmpFormat = c.NumberFormat
    If tmpFormat = "General" Then
        tmpstr = tmpstr & c.Value
    Else
        tmpstr = tmpstr & Format(c.Value, tmpFormat)
    End If
Next c
CONCATwFORMATS = tmpstr
End Function

Em seguida, você pode usar a seguinte fórmula em G1 .

=CONCATwFORMATS(A1:F1)

Esta é apenas uma tentativa rápida deste código, portanto, observe dois requisitos da função:

  1. Leva apenas um intervalo contíguo como argumento.
  2. Ele concatena os valores na ordem da esquerda para a direita (e de cima para baixo).

O código pode ser ajustado para remover essas restrições, mas para o que você quer, parece que isso funcionará bem.

    
por 26.11.2012 / 17:02