Cómo enumerar todas las combinaciones posibles de cuatro columnas con diferente número de registros en cada una de ellas

Cómo enumerar todas las combinaciones posibles de cuatro columnas con diferente número de registros en cada una de ellas

Tengo 4 columnas con una cantidad diferente de registros en cada columna. Quiero obtener una nueva tabla que consta de esas 4 columnas y obtener todas las combinaciones posibles.

Mis cuatro columnas iniciales son:

La columna A (Segmento) tiene 10 registros.
La columna B (Sector BAA) tiene 14 registros.
La columna C (Terminal) tiene 4 registros.
La columna D (Hora) tiene 24 registros.

ingrese la descripción de la imagen aquí

El resultado debería ser una tabla de 4 columnas con 10*14*4*24 = 13440 filas.

¿Puedes ayudarme a hacer eso en Excel? Sé cómo hacerlo si la cantidad de registros en cada columna fuera la misma.

Respuesta1

Puedes adaptar esta breve macro a tus necesidades:

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

información relacionada