如何列出四列的所有可能組合,每列的記錄數不同

如何列出四列的所有可能組合,每列的記錄數不同

我有 4 列,每列有不同數量的記錄。我想要一個由這 4 列組成的新表並獲得所有可能的組合。

我最初的四欄是:

A 列(段)有 10 筆記錄。
B 欄(BAA 部門)有 14 筆記錄。
C 列(終端)有 4 筆記錄。
D 欄(小時)有 24 筆記錄。

在此輸入影像描述

結果應該是一個 4 列表,包含 10*14*4*24 = 13440 行。

你能幫我在 Excel 中做到這一點嗎?如果每列中的記錄數相同,我知道該怎麼做。

答案1

您可以根據您的需求調整這個簡短的巨集:

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

相關內容