동적 행/열 수에 대한 고유한 데이터 조합을 얻고 싶습니다.

동적 행/열 수에 대한 고유한 데이터 조합을 얻고 싶습니다.

결합하고 싶은 데이터 행이 몇 개(행 수는 동적이어야 함) 있고 각각의 고유한 조합을 얻습니다. 특정 수의 데이터 행에 대해 그렇게 할 수 있지만 행 수가 고정되어 있지 않은 경우 어떻게 해야 합니까?

예를 들어:

입력 데이터:

Row 1 : Correct    Wrong    Blank
Row 2 : Correct1   Wrong1   Blank1
Row 3 : Ok         Cancel   

출력은 다음과 같아야 합니다.

Correct  Correct1   Ok
Correct  Correct1   Cancel
Correct  Wrong1     Ok
Correct  Wrong1     Cancel
Correct  Blank1     Ok
Correct  Blank1     Cancel
Wrong    Correct1   Ok
Wrong    Correct1   Cancel
Wrong    Wrong1     Ok
Wrong    Wrong1     Cancel
Wrong    Blank1     Ok
Wrong    Blank1     Cancel
Blank    Correct1   Ok
Blank    Correct1   Cancel
Blank    Wrong1     Ok
Blank    Wrong1     Cancel
Blank    Blank1     Ok
Blank    Blank1     Cancel

답변1

다음과 같은VBA매크로는 다음에서 데이터를 읽습니다.시트1그리고 그 결과를 넣으세요.시트2:

Sub Combinations()
Dim r1 As Range, r2 As Range, r3 As Range
Dim v1 As Variant, v2 As Variant, v3 As Variant
Dim rw1 As Range, rw2 As Range, rw3 As Range
Dim s As Worksheet, K As Long
Set s = Sheets("Sheet2")
K = 1
With Sheets("Sheet1")
   Set rw1 = .Rows(1).Cells.SpecialCells(xlCellTypeConstants)
   Set rw2 = .Rows(2).Cells.SpecialCells(xlCellTypeConstants)
   Set rw3 = .Rows(3).Cells.SpecialCells(xlCellTypeConstants)
End With

For Each r1 In rw1
   v1 = r1.Value
   For Each r2 In rw2
      v2 = r2.Value
      For Each r3 In rw3
         v3 = r3.Value
         s.Cells(K, 1) = v1
         s.Cells(K, 2) = v2
         s.Cells(K, 3) = v3
         K = K + 1
      Next r3
   Next r2
Next r1

End Sub

관련 정보