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

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

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

Minhas quatro colunas iniciais são:

A coluna A (segmento) possui 10 registros.
A coluna B (Setor BAA) possui 14 registros.
A coluna C (Terminal) possui 4 registros.
A coluna D (Hora) possui 24 registros.

insira a descrição da imagem aqui

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

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

Responder1

Você pode adaptar esta pequena macro à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

informação relacionada