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:
- Leva apenas um intervalo contíguo como argumento.
- 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.