2014-03-27 5 views
0

나는 Excel 문서에 무엇을 가지고 :엑셀 순열

C D  E F 
Abc 12:34 Def 56:78 
Abc 12:34 Ghi 90:12 
Abc 12:34 Jkl 34:56 
Def 56:78 Ghi 90:12 
Def 56:78 Jkl 34:56 
Ghi 90:12 Jkl 34:56 
... 

설명 :

열 A I 그 값으로 무엇을 달성하고자하는

A  B  
Abc 12:34 
Def 56:78 
Ghi 90:12 
Jkl 34:56 
... 

B는 텍스트와 숫자의 조합을 포함 할 수 있습니다 (중요하지 않은 경우).이 예제는 가장 일반적인 구조 만 표시합니다. 그것은 "아래로가는 길"에 대해서만 조합을 만들어야합니다. 이자형. "Abc ... Def ..."로 충분합니다. Def ... Abc ...가 없어야합니다.

주위에는 많은 예제가 있지만 여러 열과 함께 작동하고 조합을 반복하지 않는 VBA 버전을 찾는 데 어려움을 겪고 있습니다.

다음은 간단한 예입니다. 그러나, 그것은 단지 하나의 컬럼에 대해 그리고 그것은 또한 값을 반복 :

http://www.mrexcel.com/forum/excel-questions/412952-create-list-all-pair-combinations.html#post2046893

미리 감사드립니다. 우리가 대화에서 논의 된 것을 감안할 때

+0

예를 들어, 이것은 루프를위한 간단한 이중으로 수행 할 수 있습니다 ... 아니요? –

+0

정말 모르겠다. Excel 전문가는 아니지만, 순열에 관한 다른 질문에 대한 답변의 대부분은 매크로와 관련이있다. 또한 일부 시트는 30-40 행을 가지므로 나중에 채울 X 행 수를 선택하는 것은 실제로 실용적이지 않습니다. 그것이 Excel에서 double for loop가 작동하는 방식입니다. :) – take2

+0

아니요 - 대답은 프로그래밍/VBA와 관련이 있습니다.하지만 내가 말하고자하는 것은 대답을 보면 각 행 아래로 내려 가서 모든 행과 결합한 다음 다음 행으로 이동한다는 것입니다. 그 과정을 다시해라. 그 말이 의미가 있니? –

답변

2

, 여기 VBA의 솔루션입니다 :

Sub CreatePermutation() 

Dim FirstCell As Integer 
Dim SecondCell As Integer 
Dim NumRows As Integer 
Dim OutputRow As Long 

    ' Get the total number of rows in column A 
    NumRows = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row() 

    ' You want to start outputting in row 1 
    OutputRow = 1 

    For FirstCell = 1 To NumRows - 1 
     For SecondCell = FirstCell + 1 To NumRows 

      ' Put in the data from the first cell into columnc C & D 
      Cells(OutputRow, 3).Value = Cells(FirstCell, 1).Value 
      Cells(OutputRow, 4).Value = Cells(FirstCell, 2).Value 

      ' Put in the data from the second cell into column E & F 
      Cells(OutputRow, 5).Value = Cells(SecondCell, 1).Value 
      Cells(OutputRow, 6).Value = Cells(SecondCell, 2).Value 

      ' Move to the next row to output 
      OutputRow = OutputRow + 1 

     Next SecondCell 
    Next FirstCell 
End Sub 

희망이 당신이 찾고있는 무슨을 수행합니다.

+0

와우, 정말 간단 해 보였습니다. :) 그것은 내가 필요로하는 정확하게 것이다, 고마워! – take2

+0

:) - 전에 다했을 때 모든 것이 간단합니다! - 다행 이구나! :) –