반응형
해당 작업은 VBA 코드를 사용하여 쉽게 수행할 수 있습니다. 아래에는 주어진 데이터 형식에서 원하는 형태로 조합을 생성하는 VBA 코드 예시가 제공됩니다.
엑셀에서 Alt + F11을 눌러 VBA 편집기를 엽니다.
삽입 > 모듈을 선택하여 새 모듈을 추가합니다.
아래 코드를 입력합니다:
Sub GenerateCombinations()
Dim ws As Worksheet
Dim lastORow As Long, lastDRow As Long
Dim oRange As Range, dRange As Range
Dim resultRange As Range
Dim rowIndex As Long, resultRowIndex As Long
' 작업할 시트 지정
Set ws = ThisWorkbook.Sheets("Sheet1") ' 원하는 시트 이름으로 변경
' 각 열의 마지막 행 찾기
lastORow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
lastDRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
' 범위 지정
Set oRange = ws.Range("A2:A" & lastORow)
Set dRange = ws.Range("B2:B" & lastDRow)
Set resultRange = ws.Range("D2").Resize((lastORow - 1) * (lastDRow - 1), 2)
' 조합 생성
resultRowIndex = 1
For rowIndex = 1 To oRange.Rows.Count
For Each dCell In dRange
resultRange.Cells(resultRowIndex, 1).Value = oRange.Cells(rowIndex, 1).Value
resultRange.Cells(resultRowIndex, 2).Value = dCell.Value
resultRowIndex = resultRowIndex + 1
Next dCell
Next rowIndex
End Sub
코드 창을 닫고, Alt + F8을 눌러 마크되지 않은 매크로 목록을 엽니다.
"GenerateCombinations"을 선택하고 "실행"을 클릭하여 매크로를 실행합니다.
위의 코드를 사용하면 주어진 데이터에서 원하는 형태의 조합을 생성할 수 있습니다. 코드의 "Sheet1" 부분을 원하는 시트의 이름으로 변경하여 사용하세요.
나의 사례
내 코드
Sub GenerateCombinations()
Dim ws As Worksheet
Dim lastORow As Long, lastDRow As Long
Dim oRange As Range, dRange As Range
Dim resultRange As Range
Dim rowIndex As Long, resultRowIndex As Long
' 작업할 시트 지정
Set ws = ThisWorkbook.Sheets("Sheet2") ' 원하는 시트 이름으로 변경
' 각 열의 마지막 행 찾기
lastORow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
lastDRow = ws.Cells(ws.Rows.Count, "G").End(xlUp).Row
' 범위 지정
Set oRange = ws.Range("A2:A" & lastORow)
Set dRange = ws.Range("G2:G" & lastDRow)
Set resultRange = ws.Range("M2").Resize((lastORow - 1) * (lastDRow - 1), 2)
' 조합 생성
resultRowIndex = 1
For rowIndex = 1 To oRange.Rows.Count
For Each dCell In dRange
resultRange.Cells(resultRowIndex, 1).Value = oRange.Cells(rowIndex, 1).Value
resultRange.Cells(resultRowIndex, 2).Value = dCell.Value
resultRowIndex = resultRowIndex + 1
Next dCell
Next rowIndex
End Sub
내가 수정한 부분은 이러하다.
내 결과
반응형
'🖥️ IT, 컴퓨터 > 🧮 엑셀' 카테고리의 다른 글
[Excel] 엑셀 다른 표의 내용 랜덤으로 가져오기 (0) | 2023.08.28 |
---|---|
[Excel] 빈칸 찾아 0으로 채우는 방법 (0) | 2023.08.23 |
[Excel] 엑셀에서 minmax 스케일링 정규화하기 (0) | 2023.08.21 |
[Excel] 엑셀로 Z-score 표준화시키는 방법 (0) | 2023.08.02 |
[Excel] 엑셀 꺾은선그래프 사이 차이나는 영역 표시하기 :: 누적영역 기능 이용 (0) | 2023.07.25 |
댓글