Ich habe einen komplexen Datensatz, den ich in Excel neu anordnen muss.
Die Tabelle sieht ungefähr so aus
+----+--------+--------+--------+--------+
| ID | Text A | Text B | Text C | Text D |
+----+--------+--------+--------+--------+
| 1 | xx | | yy | zz |
+----+--------+--------+--------+--------+
| 2 | | aa | bb | |
+----+--------+--------+--------+--------+
| 3 | cc | | | dd |
+----+--------+--------+--------+--------+
Das Ergebnis, das ich ausgeben muss, ist im Wesentlichen eine Kombination aus einer Transponierung und einer Koaleszenz. Aber ich habe keine Ahnung, wie ich dieses Problem in Excel lösen soll.
+----+------+
| ID | Text |
+----+------+
| 1 | xx |
+----+------+
| 1 | yy |
+----+------+
| 1 | zz |
+----+------+
| 2 | aa |
+----+------+
| 2 | bb |
+----+------+
| 3 | cc |
+----+------+
| 3 | dd |
+----+------+
Antwort1
Dies setzt voraus, dass die Originaldaten inBlatt1und die Ausgabe wird platziert inTabelle 2.
Ausführen dieses kurzen Makros:
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
werden solche Daten inBlatt1:
und produzieren diese inTabelle 2: