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:
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.
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