Ich habe 4 Spalten mit jeweils einer unterschiedlichen Anzahl von Datensätzen. Ich möchte eine neue Tabelle mit diesen 4 Spalten erstellen und alle möglichen Kombinationen erhalten.
Meine ersten vier Spalten sind:
Spalte A (Segment) hat 10 Datensätze. Spalte B (BAA-Sektor) hat 14 Datensätze. Spalte C (Terminal) hat 4 Datensätze. Spalte D (Stunde) hat 24 Datensätze.
Das Ergebnis sollte eine 4-Spalten-Tabelle mit 10*14*4*24 = 13440 Zeilen sein.
Können Sie mir bitte dabei helfen, das in Excel zu machen? Ich weiß, wie es geht, wenn die Anzahl der Datensätze in jeder Spalte gleich ist.
Antwort1
Dieses kurze Makro können Sie an Ihre Bedürfnisse anpassen:
Sub kombin()
Dim a As Long, b As Long, c As Long, d As Long
Dim pack(1 To 4) As Variant, K As Long
Dim s1 As Worksheet, s2 As Worksheet
Set s1 = Sheets("Sheet1")
Set s2 = Sheets("Sheet2")
K = 1
For a = 2 To 11
pack(1) = s1.Cells(a, 1)
For b = 2 To 15
pack(2) = s1.Cells(b, 2)
For c = 2 To 5
pack(3) = s1.Cells(c, 3)
For d = 2 To 26
pack(4) = s1.Cells(d, 4)
s2.Range("A" & K & ":D" & K) = pack
K = K + 1
Next d
Next c
Next b
Next a
End Sub