엑셀에서 주소 데이터를 정리할 때, 특정 패턴에 맞춰 자동으로 데이터를 분리하고 싶을 때가 있죠! 예를 들어, 다음과 같은 데이터가 있다고 가정해볼게요.
📌 원본 데이터 (C열)
강원 강릉
서울 강남
부산 해운대
제주 서귀포
이 데이터를 다음과 같이 정리하고 싶다면?
- C열: 앞에서 두 글자만 남김
- D열: 나머지 글자를 이동
✅ 원하는 결과
C열 (변경 후) D열 (변경 후)
강원 | 강릉 |
서울 | 강남 |
부산 | 해운대 |
제주 | 서귀포 |
📌 VBA 코드로 자동화하기
이 작업을 수작업으로 하기엔 너무 번거롭죠? 😵💫 그래서 VBA 매크로 코드를 사용해 한 번에 해결할 수 있는 방법을 소개할게요!
✅ VBA 코드
1️⃣ 엑셀에서 ALT + F11 눌러 VBA 편집기 열기 2️⃣ 삽입 → 모듈(Module) 추가 3️⃣ 아래 코드를 복사해서 붙여넣고 실행하면 끝!
Sub ModifyAddressData()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim fullText As String
Dim firstTwoChars As String
Dim remainingText As String
' 현재 활성화된 시트 지정
Set ws = ActiveSheet
' C열의 마지막 행 찾기
lastRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row
' C열 데이터 수정 및 D열 입력
For i = 1 To lastRow
fullText = Trim(ws.Cells(i, 3).Value) ' 공백 제거 후 가져오기
' 최소 두 글자 이상이면 처리
If Len(fullText) >= 2 Then
firstTwoChars = Mid(fullText, 1, 2) ' 앞 두 글자 가져오기
remainingText = Mid(fullText, 3) ' 세 번째 글자부터
' C열 업데이트 (앞 두 글자만 남기기)
ws.Cells(i, 3).Value = firstTwoChars
' D열 업데이트 (나머지 글자)
ws.Cells(i, 4).Value = remainingText
Else
' 두 글자 미만이면 C열 그대로 두고 D열은 빈 값
ws.Cells(i, 4).Value = ""
End If
Next i
MsgBox "변환 완료! C열: 앞 두 글자만, D열: 나머지 글자", vbInformation
End Sub
✅ 코드 설명
💡 이 코드가 하는 일:
- C열 데이터에서 처음 두 글자를 추출 → C열에 저장
- 나머지 글자는 D열에 저장
- 공백이 있어도 자동으로 정리 (예: " 강원 강릉" → "강원" / "강릉")
- 한 글자만 있는 경우는 C열 유지 & D열 비움
- 마지막 데이터까지 자동 반복 처리 (데이터 개수 상관없음)
📌 실행 예시 (공백이 있는 경우도 해결!)
C열 (원본) C열 (변경 후) D열 (변경 후)
" 강원 강릉" | 강원 | 강릉 |
" 서울 강남" | 서울 | 강남 |
"부산 해운대" | 부산 | 해운대 |
" 제주 서귀포" | 제주 | 서귀포 |
🎯 활용하면 좋은 상황
✅ 주소 데이터 정리 (예: 지역명 + 세부 주소 분리)
✅ 상품명 정리 (예: 브랜드 + 제품명 분리)
✅ 이름 정리 (예: 성 + 이름 분리)
🚀 마무리
이제 VBA 매크로를 실행하면 C열에는 앞 두 글자만 남고, 나머지는 D열로 이동하는 자동화가 완료됩니다! 😆
이 방법을 활용하면 반복적인 수작업을 줄이고 데이터를 깔끔하게 정리할 수 있어요. 궁금한 점 있으면 댓글 남겨주세요~! 😊
'정보 > 직장인 정보' 카테고리의 다른 글
티스토리 블로그 버튼 만들기 코드공유! (0) | 2025.03.19 |
---|---|
직장인 필수 윈도우 메모장 숨겨진 기능 7가지 (0) | 2024.08.31 |
운전면허시험 절차 순서 총정리 2024 (0) | 2023.11.18 |
엑셀 날짜 함수 정리 (0) | 2023.10.14 |
엑셀 함수 정리 자주 쓰는 10가지 (0) | 2023.10.14 |
댓글