我有一张以下格式的 Excel 表格。
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
有没有办法将其改成这种格式?
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
我愿意使用 VBA、PowerQuery、PowerPivot、数据模型等。在寻找此问题的答案时我应该使用一个技术术语吗(规范化、转换等)。
谢谢你的帮助。
答案1
答案2
如果你有很多,而且你更愿意使用 VBA,那么这个就行
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