Excel에서 다시 정렬해야 하는 복잡한 데이터 세트가 있습니다.
테이블은 대략 이런 느낌이에요
+----+--------+--------+--------+--------+
| ID | Text A | Text B | Text C | Text D |
+----+--------+--------+--------+--------+
| 1 | xx | | yy | zz |
+----+--------+--------+--------+--------+
| 2 | | aa | bb | |
+----+--------+--------+--------+--------+
| 3 | cc | | | dd |
+----+--------+--------+--------+--------+
내가 출력해야 하는 결과는 본질적으로 전치와 합체의 조합입니다. 하지만 Excel에서 이 문제를 해결하는 방법을 모르겠습니다.
+----+------+
| ID | Text |
+----+------+
| 1 | xx |
+----+------+
| 1 | yy |
+----+------+
| 1 | zz |
+----+------+
| 2 | aa |
+----+------+
| 2 | bb |
+----+------+
| 3 | cc |
+----+------+
| 3 | dd |
+----+------+
답변1
이는 원본 데이터가 다음 위치에 있다고 가정합니다.시트1출력은 다음 위치에 배치됩니다.시트2.
이 짧은 매크로를 실행하면:
Sub ReOrganizer()
Dim N As Long, nCols As Long
Dim i As Long, j As Long, k As Long
Dim s1 As Worksheet, s2 As Worksheet
Set s1 = Sheets("Sheet1")
Set s2 = Sheets("Sheet2")
N = s1.Cells(Rows.Count, 1).End(xlUp).Row
nCols = 5
k = 2
For i = 2 To N
Item = s1.Cells(i, 1)
For j = 2 To nCols
If s1.Cells(i, j) <> "" Then
s2.Cells(k, 1) = Item
s2.Cells(k, 2) = s1.Cells(i, j)
k = k + 1
End If
Next j
Next i
End Sub
다음과 같은 데이터를 가져옵니다.시트1:
그리고 이것을 생산시트2: