Como listar todas as combinações possíveis de quatro colunas com diferentes números de registros em cada uma delas

0

Eu tenho 4 colunas com um número diferente de registros em cada coluna. Eu quero obter uma nova tabela com essas 4 colunas e obter todas as combinações possíveis.

Minhas quatro colunas iniciais são:

Column A (Segment) has 10 records.
Column B (BAA Sector) has 14 records.
Column C (Terminal) has 4 records.
Column D (Hour) has 24 records.

O resultado deve ser uma tabela de 4 colunas com 10 * 14 * 4 * 24 = 13440 linhas.

Você pode me ajudar a fazer isso no Excel? Eu sei como fazer isso se o número de registros em cada coluna fosse o mesmo.

    
por Marios 02.02.2018 / 12:46

1 resposta

1

Você pode adaptar essa macro curta às suas necessidades:

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
    
por 02.02.2018 / 15:25