위 이미지와 같이 번호1이 같은 행들이 있습니다. 같은 번호1을 가진 행들 내에서 A를 기준으로 나머지 B, C, D 등과 그에 딸린 번호2를 아래 이미지와 같이 정렬하고 싶은 상황입니다. 이런 경우에 쓸 수 있는 함수나 VBA코드가 있을까요?
제가 엑셀 초짜라... 보통은 GPT를 활용해서 대부분 해결했는데 이 정도로 복잡한 건 자꾸 VBA 코드 컴파일 오류(외부 프로시저 관련이라고는 하는데, 어디가 문제인지 모르겠음)가 뜹니다. 데이터가 몇만 행이 넘는 상황이라 수동으로 수정하는 것도 불가능합니다. ㅠ.ㅠ
잘 아시는 분들의 고견을 기다립니다.
감사합니다.

Sub 요약정리_번호1유지_첫행고정() Dim ws As Worksheet Set ws = ActiveSheet Dim lastRow As Long lastRow = ws.Cells(ws.Rows.Count, "D").End(xlUp).Row Dim dict As Object Set dict = CreateObject("Scripting.Dictionary") Dim i As Long For i = 2 To lastRow Dim key As Variant key = ws.Cells(i, "D").value Dim value As String value = ws.Cells(i, "E").value & "," & ws.Cells(i, "F").value If Not dict.exists(key) Then dict.Add key, Array(i, Array()) ' 첫 행 저장, 값은 비워둠 Else Dim arr As Variant arr = dict(key) Dim tempArr As Variant tempArr = arr(1) Dim newSize As Long If IsArray(tempArr) Then newSize = UBound(tempArr) + 1 ReDim Preserve tempArr(newSize) Else ReDim tempArr(0) newSize = 0 End If tempArr(newSize) = value arr(1) = tempArr dict(key) = arr End If Next i ' 결과 붙여넣고 기존 값 지우기 (E, F만) Dim keyItem As Variant For Each keyItem In dict.Keys Dim baseRow As Long baseRow = dict(keyItem)(0) Dim values As Variant values = dict(keyItem)(1) Dim j As Long For j = 0 To UBound(values) Dim parts() As String parts = Split(values(j), ",") ws.Cells(baseRow, 7 + j * 2).value = parts(0) ' 알파벳 ws.Cells(baseRow, 8 + j * 2).value = parts(1) ' 번호2 Next j ' 나머지 행의 E, F만 지우기 For i = baseRow + 1 To lastRow If ws.Cells(i, "D").value = keyItem Then ws.Range("E" & i & ":F" & i).ClearContents End If Next i Next keyItem MsgBox "요약 완료! 번호1은 유지되고 첫 행은 그대로입니다." End SubAI는 원하는 결과가 나오지 않으면 수정에 수정을 거쳐야 됩니다.
첨부파일 참고하세요