Dividindo dados em colunas

Dividindo dados em colunas

Tenho uma planilha na qual estou trabalhando. Dentro desta folha há duas colunas. A coluna A é o identificador exclusivo e a coluna B possui números de identificação. Um identificador pode ter até 1 ou 5 IDs. O que preciso fazer é mover todos os IDs para uma linha, mantendo o identificador que anexei na imagem antes e depois.

Tenho certeza de que existe alguma fórmula que pode fazer isso, espero que você possa ajudar.

Antes

Antes

Depois

Depois

Responder1

Coloque esta macro em um módulo padrão e execute-a:

Sub Macro1()
    Dim i As Long, j As Long, k As Long, Na As Long
    Dim v As String, Nc As Long

    Columns("A:A").Copy Columns("C:C")
    ActiveSheet.Range("C:C").RemoveDuplicates Columns:=1, Header:=xlYes


    Na = Cells(Rows.Count, "A").End(xlUp).Row
    Nc = Cells(Rows.Count, "C").End(xlUp).Row

    For i = 2 To Nc
        k = 4
        v = Cells(i, "C").Value
        For j = 2 To Na
            If v = Cells(j, 1).Value Then
                Cells(i, k) = Cells(j, 2).Value
                k = k + 1
            End If
        Next j
    Next i
End Sub

Aqui está um exemplo de saída:

insira a descrição da imagem aqui

Como você pode ver, assumimos que as entradas estão em colunasAeB. As saídas vão nas colunas próximas a elas. O código não se importa se os dados estão classificados ou não.

Responder2

Faço isso de vez em quando, mas sem VBA e em algumas etapas:

1) primeiro classifique os dados por ID para que sejam agrupados

2) então, em C2: =if(A1=A2,if(A2=A3,B1&","&B2, "Last,"&B1&","&B2),B2)

3) analise isso

4) copie e cole a coluna C como valores (digamos apenas na coluna D) para se livrar da fórmula

5) classifique pela coluna D, exclua tudo que não diz "último"

6) selecione coluna D, guia Dados > Texto para colunas > delimitado > selecione vírgulas > OK

Agora tudo está dividido em colunas exclusivas e na mesma linha do ID. Você pode excluir as colunas B e C, pois elas não são mais necessárias

informação relacionada