Transformar várias colunas na tabela do Excel em várias linhas

1

Eu tenho uma tabela do excel no seguinte formato.

ID Date1 Date2 Date3  
1  1/1   1/2   1/3
2  1/2   1/3   1/1
3  1/3   1/2   1/4

Existe uma maneira de alterá-lo para este formato?

ID Date
1  1/1
1  1/2
1  1/3
2  1/2
2  1/3
2  1/1
3  1/3
3  1/2
3  1/4

Estou aberto a usar VBA, PowerQuery, PowerPivot, modelo de dados, etc. Existe um termo técnico que devo usar ao procurar por respostas para esse problema (normalizando, transformando, etc).

Obrigado por qualquer ajuda.

    
por RWL01 07.01.2016 / 00:07

2 respostas

2

Com dados como:

Escolhaumacélulaedigite:

=ROUNDUP(ROWS($1:1)/3,0)

enacélulaadjacente,digite:

=OFFSET($B$2,ROUNDUP(ROWS($1:1)/3,0)-1,MOD(ROWS($1:1)-1,3))

copieessascélulasparabaixoeapliqueoformatoadequadoàsegundacolunaparaver:

    
por 07.01.2016 / 01:07
1

Se você tiver um monte e preferir usar o VBA, isso funcionará

Option Explicit

Sub unpivot()
Dim lastrow As Integer
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Dim lastcol As Integer
lastcol = Cells(1, Columns.Count).End(xlToLeft).Column

Dim r As Integer
Dim c As Integer


For r = lastrow To 2 Step -1

    For c = lastcol To 3 Step -1
        If Cells(r, c) <> "" Then
            Rows(r + 1).Insert
            Cells(r + 1, 1) = Cells(r, 1)
            Cells(r + 1, 2) = Cells(r, c)
            Cells(r, c).Clear
        Else: Rows(r).Delete
        End If
    Next

Next

End Sub
    
por 07.01.2016 / 13:04