728x90
📊 엑셀 대량데이터를 월별 중복 제거하는 방법 총정리
업무 중 고객 데이터, 매출 기록, 접속 로그 등 대량 데이터를 다룰 때 “월별로 중복된 항목을 제거”해야 할 일이 많습니다. 단순한 중복 제거가 아니라 월 기준으로 그룹핑 후 각 그룹 내에서 중복 제거하는 것이 핵심입니다.
이번 포스팅에서는 초보자도 쉽게 따라 할 수 있도록 단계별로 정리해보았습니다.
✅ 예시 데이터 구성
날짜 고객명 상품명
2024-01-05 | 김영희 | A상품 |
2024-01-15 | 김영희 | A상품 |
2024-02-01 | 이철수 | B상품 |
2024-02-10 | 김영희 | A상품 |
1️⃣ [도움말] 날짜를 ‘월’ 단위로 변환하기
먼저 날짜를 월별로 분류할 수 있도록 추가 열을 만들어야 합니다.
📌 함수 사용
=TEXT(A2, "yyyy-mm")
날짜 고객명 상품명 월
2024-01-05 | 김영희 | A상품 | 2024-01 |
2024-01-15 | 김영희 | A상품 | 2024-01 |
2️⃣ 고급 필터로 월별 중복 제거하기 (엑셀 기본 기능)
🪄 방법:
- 월, 고객명, 상품명 열 복사 → 새로운 영역에 붙여넣기
- [데이터] → [고급 필터]
- ‘지정한 범위에서 고유한 레코드만’ 체크
- → 중복 제거된 결과 출력
장점: 직관적이며 필터링 기준 자유 설정
단점: 데이터 많을수록 수동 작업이 반복됨
3️⃣ 피벗 테이블로 월별 고유값 보기
⏳ 빠르게 집계하려면:
- [삽입] → [피벗 테이블]
- 행: 월, 고객명
- 값: 상품명 (개수 또는 고유값)
장점: 중복 제거된 형태로 집계 가능
단점: 데이터를 추출하는 데 한계가 있음
4️⃣ 고급 사용자용: VBA 매크로로 월별 중복 제거 자동화
Sub 월별중복제거()
Dim 데이터 As Range
Dim 셀 As Range
Dim sht As Worksheet
Dim 고유값 As Object
Dim 월 As String
Dim 결과행 As Long
Set sht = ActiveSheet
Set 데이터 = sht.Range("A2", sht.Cells(sht.Rows.Count, 1).End(xlUp))
Set 고유값 = CreateObject("Scripting.Dictionary")
결과행 = 2
For Each 셀 In 데이터
월 = Format(셀.Value, "yyyy-mm")
키 = 월 & "_" & 셀.Offset(0, 1).Value & "_" & 셀.Offset(0, 2).Value
If Not 고유값.exists(키) Then
고유값.Add 키, True
Cells(결과행, 6).Value = 월
Cells(결과행, 7).Value = 셀.Offset(0, 1).Value
Cells(결과행, 8).Value = 셀.Offset(0, 2).Value
결과행 = 결과행 + 1
End If
Next 셀
MsgBox "월별 중복 제거 완료!"
End Sub
💡 팁: 결과는 F2:H 영역에 정리됩니다.
🔎 또 다른 방법 알아보기!
✅ 1. Power Query (파워쿼리)로 월별 중복 제거
💡 엑셀 2016 이후 버전 기본 탑재 (데이터 탭에서 사용 가능)
📌 사용법 요약:
- 데이터 → 파워쿼리로 불러오기
- 날짜 열 → "년-월" 형식으로 변환 (Transform → Date → Month)
- 필요한 열 기준으로 중복 제거
- 예: 고객명 + 월 + 상품명 조합
- 결과를 워크시트로 불러오기
장점:
- 대용량도 빠르게 처리
- 반복 작업 자동화 가능
- 원본 데이터 변경 시 자동 갱신
✅ 2. 피벗 테이블에서 ‘고유 항목 수’ 보기
📌 사용법 요약:
- 날짜 → 행 필드에 추가 (년/월로 그룹화)
- 고객명 → 값 필드 → "개수" 또는 "고유 개수"로 설정
- 상품명 → 필요 시 열 필드로 추가
장점:
- 요약 통계 보고용으로 빠름
- 원본 손상 없이 시각화
✅ 3. 수식 + 고급 필터 조합 (VLOOKUP or UNIQUE)
📌 수식 조합 예시:
- 날짜 열을 기준으로 월을 계산
=TEXT(A2, "yyyy-mm")
- 고객명, 상품명, 월 조합을 하나의 키로 만들기
=B2 & "-" & C2 & "-" & D2
- 고급 필터에서 중복 제거: 키 열 기준
또는 Excel 365 이상이면 UNIQUE 함수도 가능:
=UNIQUE(FILTER(A2:D100, TEXT(A2:A100, "yyyy-mm")="2024-03"))
✅ 4. VBA 매크로를 통한 월별 그룹 내 중복 제거
만약 매달 반복되는 데이터가 있고 이를 자동화하고 싶다면, 아래와 같은 매크로를 활용할 수 있습니다.
Sub 월별중복자동제거()
Dim dict As Object
Dim i As Long, 마지막행 As Long
Dim 월 As String, 키 As String
Set dict = CreateObject("Scripting.Dictionary")
마지막행 = Cells(Rows.Count, 1).End(xlUp).Row
결과행 = 2
For i = 2 To 마지막행
월 = Format(Cells(i, 1).Value, "yyyy-mm")
키 = 월 & "_" & Cells(i, 2).Value & "_" & Cells(i, 3).Value
If Not dict.exists(키) Then
dict.Add 키, True
Cells(결과행, 6).Value = 월
Cells(결과행, 7).Value = Cells(i, 2).Value
Cells(결과행, 8).Value = Cells(i, 3).Value
결과행 = 결과행 + 1
End If
Next i
MsgBox "월별 중복 제거 완료!"
End Sub
🧠 어떤 방법이 가장 좋을까?
상황 추천 방법
한 번만 처리하고 끝낼 경우 | 고급 필터 or 피벗 테이블 |
매달 반복해서 사용해야 할 경우 | Power Query or VBA 매크로 |
자동 갱신 + 시각화까지 필요 | Power Query + 피벗 조합 |
728x90
'직장인 꿀팁 모음' 카테고리의 다른 글
직장인 영어회화 실력 올리는 꿀팁 : 루틴부터 유튜브 활용법까지 (2) | 2025.04.08 |
---|---|
슬랙, 노션, 트렐로 비교: 어떤 협업툴이 나에게 맞을까? (1) | 2025.04.08 |
직장인 엑셀 필수 매크로 총정리 (2025년 최신) (0) | 2025.04.07 |
EPL 현재 순위 정리 (2024-25 시즌) : 프리미어 리그 우승 경쟁은? (0) | 2025.04.06 |
직장인 필수 통계 개념 정복하기 : 보고서도 분석도 더 똑똑하게 (0) | 2025.04.05 |