Página 1 de 1

Unir texto ignorando os espaços [RESOLVIDO]

Enviado: 11 Dez 2020 às 12:41
por leewroy
Boa tarde, amigos.

Estou trabalhando com excel 2007. Peço vossa ajuda com o seguinte problema:

Tenho em uma planilha células com letras e outras sem. Gostaria de, numa outra célula, juntar os conteúdos delas sem que ficasse espaços entre eles. A função unir texto não está disponível nessa versão e a função concatenar retorna os caracteres com espaços.

Exemplo: (Cada célula contém uma letra)

AAA BBBB --> preciso que fique AAABBB (tudo junto, numa outra célula com uma formula específica para isso.

Obs: não sei quando as células em branco irão surgir.

Agradeço desde já vossa ajuda.

Re: Unir texto ignorando os espaços

Enviado: 11 Dez 2020 às 13:05
por AfonsoMira
Boas veja se desta maneira ajuda. :D

Utilizei a função Substituir, para que ele substitua os espaços " " para nada "".

Re: Unir texto ignorando os espaços

Enviado: 11 Dez 2020 às 15:08
por leewroy
Boa tarde, amigo!

Na sua planilha está perfeito, exatamente o que preciso, porém ao aplicar essa fórmula na minha está dando erro.

=SUBSTITUIR(_xlfn.CONCAT(A2:H2);" ";"")

Note que eu alterei o intervalo para que ficasse de acordo, no meu caso é de I10 a BF10. Dois detalhes que me chamaram a atenção foram o uso do 'CONCAT' (essa função seria a concatenar nas versões posteriores do excel?) E esse (_xlfn.) que não sei o que é.

Agradeço desde já!

Re: Unir texto ignorando os espaços

Enviado: 11 Dez 2020 às 15:26
por Kledison
Boa tarde!

Outra possibilidade usando a UDF abaixo, abra o editor de Visual Basic, crie um módulo e coloque o código:

Créditos: Fernando Fernandes, criador da UDF.
Código: Selecionar todos
Option Explicit
'====================================================================
'Nome.........: UnirTexto *(Criada e incluída no Excel 2016, mas ausente nas outras versões)
'Data.........: 29/03/2016 (dmy)
'Autor........: Fernando Fernandes
'Contato......: Fernando.Fernandes@outlook.com.br
'Descrição....: Concatena todos os textos informados no último parâmetro,
'               usando o delimitador para separá-los, ignorando ou não as células vazias
'Forum........: www.Planilhando.com.br
'====================================================================
Public Function UnirTexto(ByVal Delimitador As String, _
                          ByVal IgnorarVazios As Boolean, _
                          ParamArray Celulas() As Variant) As Variant
On Error GoTo TratarErro
Dim Intervalo   As Variant
Dim Resultado   As String
Dim i           As Long
Dim j           As Long
Dim k           As Long
   
    If UBound(Celulas, 1) < LBound(Celulas, 1) Then
        UnirTexto = VBA.Conversion.CVErr(xlErrValue)
        Exit Function
    End If
   
    For i = LBound(Celulas, 1) To UBound(Celulas, 1) Step 1

        If VBA.Information.IsArray(Celulas(i)) Then
       
            Intervalo = Celulas(i)
            For j = LBound(Intervalo, 1) To UBound(Intervalo, 1) Step 1
                For k = LBound(Intervalo, 2) To UBound(Intervalo, 2) Step 1
                    If Not VBA.Information.IsError(Intervalo(j, k)) Then
                        If Not VBA.Strings.Trim(Intervalo(j, k)) = vbNullString Then
                            Resultado = Resultado & Delimitador & Intervalo(j, k)
                        End If
                    End If
                Next k
               
            Next j
           
        Else
       
            If Not VBA.Information.IsError(Celulas(i)) Then
                If Not VBA.Strings.Trim(Celulas(i)) = vbNullString Then
                    Resultado = Resultado & Delimitador & Celulas(i)
                End If
            End If
           
        End If
       
    Next i

    If VBA.Strings.Len(Resultado) > VBA.Strings.Len(Delimitador) Then
        Resultado = VBA.Strings.Right(Resultado, VBA.Strings.Len(Resultado) - VBA.Strings.Len(Delimitador))
    End If
    UnirTexto = Resultado
    Exit Function
TratarErro:
    UnirTexto = VBA.Conversion.CVErr(xlErrValue)
End Function


Na célula que deseja juntar o texto coloque:
Código: Selecionar todos
=UnirTexto("";VERDADEIRO;A2:H2)
Segue modelo com essa dica.

Att

Re: Unir texto ignorando os espaços

Enviado: 11 Dez 2020 às 16:03
por leewroy
Obrigado, amigo!

Vou salvar esse script para outras necessidades, acabei resolvendo com a fórmula do Afonso Mira, após algumas adaptações.

Muito agradecido a ambos! :D