Mover números desiguais de caracteres por célula para outra célula única coluna com alcance limitado

0

Como mover caracteres de células da primeira coluna para outra coluna, mas a segunda coluna não deve ter mais de 25 caracteres por célula. Por exemplo, na primeira coluna, cada uma das primeiras 5 linhas de células tem 5 caracteres que migrarão para a segunda coluna com um total de 25 caracteres, as linhas 6,7,8 poderão ter 7 caracteres e a linha 9 poderá ter 8 caracteres. Assim, apenas as linhas 6,7,8 (total de 21 caracteres) migrarão para a segunda coluna. A linha 9 irá com a próxima, que em conjunto pode resultar em 25 ou um número menor de caracteres. Obrigado

    
por Ирина Жебрак 01.05.2018 / 16:03

1 resposta

0

Em B1 digite:

=MID(TEXTJOIN("",TRUE,A:A),(ROWS($1:1)-1)*25+1,25)

e copie para baixo:

AfórmulaconcatenatodososdadosnacolunaA.Emseguida,elepega25caracteres"pedaços" e os coloca na coluna B .

EDIT # 1:

Aqui está uma solução baseada em macro. A macro desce a coluna A criando uma string por meio de concatenação. Antes de a string ultrapassar 25 caracteres, ela é armazenada em uma célula B e uma nova sequência é iniciada. A macro:

Sub Kompactor()
    Dim txt As String, K As Long, i As Long
    txt = ""
    K = 1

    For i = 1 To 25
    If Len(txt & Cells(i, 1)) > 25 Then
        Cells(K, 2) = txt
        txt = Cells(i, 1)
        K = K + 1
    Else
        txt = txt & Cells(i, 1)
    End If
    Next i

    Cells(K, 2) = txt
End Sub

alguns dados de amostra:

Como você vê A1, A2, A3, A4 ir para B1
A5, A6, A7 ir para B2
etc

    
por 01.05.2018 / 16:26