それぞれに異なる数のレコードがある 4 つの列のすべての可能な組み合わせをリストする方法

それぞれに異なる数のレコードがある 4 つの列のすべての可能な組み合わせをリストする方法

列ごとにレコード数が異なっている 4 つの列があります。これらの 4 つの列で構成される新しいテーブルを取得し、すべての可能な組み合わせを取得したいと考えています。

私の最初の 4 つの列は次のとおりです。

列 A (セグメント) には 10 個のレコードがあります。
列 B (BAA セクター) には 14 件のレコードがあります。
列 C (ターミナル) には 4 つのレコードがあります。
列D(時間)には24件のレコードがあります。

ここに画像の説明を入力してください

結果は、10*14*4*24 = 13440 行の 4 列のテーブルになります。

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

関連情報