엑셀 특정 열 값 추출, 주문서 양식에 맞게 통합하기

안녕하세요 : )

위탁 판매를 하고 있는 온라인 쇼핑몰 운영자입니다. 저는 여러 쇼핑몰에 상품을 판매하고 있습니다. 매일 쇼핑몰 주문 화면을 통해 또는 주문 엑셀 파일을 다운받아 필요한 데이터만 주문서 양식에 맞게 복붙, 취합하며 제조사에 주문을 넣었습니다.

반복적으로 매일 수작업(?) 하다 보니, 시간 소요도 많고 가끔 실수를 하기도 했어요. 효율적 인 업무 처리를 고민하던 중 DECK님과 꼬비님 발표 내용을 참고, 쇼핑몰 별 주문 내역을 주문서 양식에 맞게 통합 해 보았습니다.


1. 과제 설정

  • 여러 쇼핑몰 주문 엑셀 파일에서 필요한 열 데이터만 추출 , 빠르게 주문서 양식으로 취합 할 수 있을까?


쇼핑몰 별 주문 내역

주문서 엑셀 양식


2. ChatGPT: 하나의 열 데이터 추출

  • 엑셀 특정 열 데이터 추출을 위한 VBA 코드 질문

ChatGPT 응답에 따라 아래 VBA 코드를 작성, 실행 해 봅니다.

Sub CopyColumnToNewSheet()
    Dim sourceColumn As Range, targetRange As Range
    
    ' 원본 워크시트와 열 설정 ("Sheet1"의 "A" 열)
    Set sourceColumn = Worksheets("Sheet1").Columns("A")
    
    ' 새 워크시트 생성
    Dim newSheet As Worksheet
    Set newSheet = Worksheets.Add
    
    ' 목표지점 설정 (새 워크시트의 "A" 열의 첫 번째 셀)
    Set targetRange = newSheet.Range("A1")
    
    ' 열 데이터 복사 및 붙여넣기
    sourceColumn.Copy Destination:=targetRange
    
    ' 결과 메시지
    MsgBox "열 데이터가 새 워크시트에 복사되었습니다."
End Sub


결과 "Sheet1"의 "A" 열 데이터가 새로 생성된 워크시트의 "A" 열에 복사됨을 확인했습니다.


3. ChatGPT: 다수의 열 데이터 추출

  • 쿠팡 주문 내역에 있는 열은 40개. 주문 양식에 6~7개 열만 필요하기에 재질문 후 VBA 코드를 다시 살펴봅니다.

Sub CopyMultipleColumnsToNewSheet()
    Dim wsSource As Worksheet, wsTarget As Worksheet
    Dim arrColumns As Variant
    Dim i As Integer
    
    ' 원본 워크시트 설정
    Set wsSource = ThisWorkbook.Worksheets("Sheet1")
    
    ' 새 워크시트 생성
    Set wsTarget = ThisWorkbook.Worksheets.Add
    
    ' 복사할 열 번호 또는 문자 배열 설정
    arrColumns = Array(1, 3, 5, 7, 9, 11) ' A, C, E, G, I, K 열에 해당하는 열 번호
    
    ' 배열에 지정된 각 열을 순회하며 새 워크시트에 복사
    For i = LBound(arrColumns) To UBound(arrColumns)
        ' 열 복사 & 타겟 워크시트에 붙여넣기
        wsSource.Columns(arrColumns(i)).Copy Destination:=wsTarget.Columns(i + 1)
        ' i + 1은 새 워크시트에서의 위치를 지정, 필요에 따라 조정 가능
    Next i
    
    ' 결과 메시지
    MsgBox "특정 열 데이터가 새 워크시트에 복사되었습니다."
End Sub


수정 필요한 부분이 확인 되었습니다.


arrColumns = Array(1, 3, 5, 7, 9, 11) ' A, C, E, G, I, K 열에 해당하는 열 번호


  1. 각 쇼핑몰 주문 내역에서 주문에 필요한 수취인명, 전화번호, 핸드폰, 우편번호, 주소, 배송메시지, 상품명 해당 열을 찾아 그 열 번호 또는 문자Array에 넣어주면 된다는 걸 이해했고, 실행 결과도 잘 나왔습니다.

  2. 이어, 각 쇼핑몰 주문 내역 파일을 열어, 필요 항목만 추출하면 더 좋겠다는 생각이 들어 다시 질문을 해 봅니다.


4. ChatGPT: 파일 열기 + 다수의 열 데이터 추출

ChatGPT 답변

Sub ExtractDataFromSample1()
    ' Sample1.xlsx 파일에서 A, C, E 열의 데이터 추출
    ExtractSpecificColumns "C:\YourPath\Sample1.xlsx", Array(1, 3, 5)
End Sub

Sub ExtractDataFromSample2()
    ' Sample2.xlsx 파일에서 A, F, I 열의 데이터 추출
    ExtractSpecificColumns "C:\YourPath\Sample2.xlsx", Array(1, 6, 9)
End Sub

Sub ExtractSpecificColumns(filePath As String, arrColumns As Variant)
    Dim wbSource As Workbook
    Dim wsTarget As Worksheet
    Dim i As Integer
    
    ' 대상 엑셀 파일 열기
    Set wbSource = Workbooks.Open(filePath)
    
    ' 새 워크시트 생성
    Set wsTarget = ThisWorkbook.Sheets.Add
    
    ' 지정된 열 데이터 추출 및 새 워크시트에 붙여넣기
    For i = LBound(arrColumns) To UBound(arrColumns)
        wbSource.Sheets(1).Columns(arrColumns(i)).Copy Destination:=wsTarget.Cells(1, i + 1)
    Next i
    
    ' 원본 워크북 닫기 (저장하지 않음)
    wbSource.Close SaveChanges:=False
    
    MsgBox filePath & "에서 데이터 추출 완료!"
End Sub


수정 필요한 부분은 파일 경로와 열 번호입니다. 맞게 바꿔줍니다.

[원본] ExtractSpecificColumns "C:\YourPath\Sample1.xlsx", Array(1, 3, 5)

[수정] '쿠팡주문.xlsx 파일에서 주문 양식 데이터 추출

"C:\MyPath\쿠팡주문.xlsx", Array(27, 28, 29, 30, 31, 11, 12)

[결과]


[원본] ExtractSpecificColumns "C:\YourPath\Sample2.xlsx", Array(1, 6, 9)

[수정] '티몬주문.xlsx 파일에서 주문 양식 데이터 추출

"C:\MyPath\티몬주문.xlsx", Array(23, 25, 27, 26, 28, 17, 19)

[결과]


5. 느낀 점

  • VBA 초보인 제가 쉽게 원하는 열의 데이터를 추출할 수 있었습니다.

  • 쇼핑몰 데이터를 나만의 엑셀 양식에 맞춰 관리 시 유용할 것 같습니다.

  • 코딩, AI 활용 능력을 키워주는 오류 메시지

    • 시트 이름 바꾸고 각 워크시트 저장 값을 ‘통합’ 시트에 합치는 걸 시도 했지만, 오류 메시지가 떴습니다.

    • Claude와 Genie - Your Excel VBA Expert 로 해결 중이며, 코드를 더 잘 이해하는 시간이 되었습니다.




6. 이후

  • DECK님 의견 “step by step” 접근 좋다. 본인은 전체를 먼저 정의하고 접근한다”

  • 전략 수정: 벽돌, 창틀 구하기 에서 집 구하기로

7. 활용 방법

2개 엑셀 파일 속 특정 열 데이터 추출.txt
  • 2개 엑셀 파일을 불러 특정열 데이터를 추출하는 VBA 코드입니다.

  • 엑셀 파일 경로와 파일명, 추출하려는 데이터 열을 수정해서 사용 해 주세요.


#10기로우코드

7
6개의 답글

(채용) AI 전문가로 성장할 분?

유튜브 PD, 콘텐츠 마케터, AI 엔지니어, PM, 디자이너, 프론트, 백엔드

👉 이 게시글도 읽어보세요