앱으로 돌아가기

Excel에서 중복 행을 찾고 제거하는 방법

최종 업데이트: 2026-05-22 · 작성: xlstools 팀

중복은 무수한 경로로 스프레드시트에 스며듭니다: 데이터베이스 내보내기 재실행, CRM 시스템 병합, 복사-붙여넣기 실수, 이중 임포트. 본 가이드는 두 가지 중복 제거 모드, 올바른 키 열을 선택하는 방법, 데이터를 삭제하기 전에 결과를 검증하는 방법을 설명합니다.


두 가지 중복 감지 방법

가장 중요한 결정은 "중복"이 데이터에 무엇을 의미하는지입니다.

1. 전체 행 일치

두 행은 모든 셀이 동일할 때만 중복. 가장 엄격한 모드 — 한 열의 단 하나의 떠도는 공백조차 행을 다르게 취급하게 함.

사용: 정확한 바이트 단위 복사만 제거하고 싶을 때. 같은 행을 두 번 포함할 수 있는 내보내기 연결 후에 흔히 사용.

2. 키 열 일치

하나 이상의 "키" 열을 선택; 해당 열에서 동일한 값을 가진 행은 다른 필드와 상관없이 중복으로 처리.

사용: 논리적 주키(email, order_id, employee_id)가 있고 키당 한 행을 원할 때, 다른 열에 약간의 차이(다른 업데이트 타임스탬프, 서식 변형 등)가 있어도.


단계별 가이드

1단계 — Excel 파일 업로드

.xlsx 또는 .xls. 도구가 브라우저에서 읽고 열 목록 표시.

2단계 — 중복 제거 모드 선택

전체 행 일치키 열 일치 사이 전환. 키 열을 선택했다면 어느 열이 키인지도 선택.

3단계 — 어느 중복을 유지할지 선택

중복이 발견되면 한 행이 유지되고 나머지는 제거. 선택:

  • 첫 번째 발생 유지(기본) — 원래 순서에서 가장 이른 행 보존
  • 마지막 발생 유지 — 가장 최근 행 보존(이후 행에 더 완전한 데이터가 있을 때 유용)

4단계 — 미리보기 검토

도구가 중복 행을 강조 표시하여 진행 결정 전 빠르게 검토. 확인: 실제로 중복처럼 보이는가? 아니면 너무 좁은 키를 선택했는가?

5단계 — 다운로드

한 번의 실행으로 두 파일 생성:

  1. 고유 행 — 중복 제거된 결과(깨끗한 데이터셋)
  2. 중복 행 — 제거된 것(감사용 보관)

올바른 키 열 선택

이곳이 대부분의 중복 제거 작업이 잘못되는 곳.

키 열 선택 결과
email ✅ 강함 — 이메일은 보통 사람당 고유
order_id ✅ 강함 — 주문 ID는 정의상 고유
employee_id + date ✅ 시계열에 좋음(직원당 일당 한 행)
first_name + last_name ⚠️ 약함 — 서로 다른 두 "John Smith"가 하나로 합쳐짐
phone_number ⚠️ 약함 — 서식 드리프트(+1-555-1234 vs 5551234)로 거짓 음성
timestamp_ms ❌ 무용 — 너무 세밀, 중복이 절대 감지되지 않음

경험 법칙: 단순히 채워진 열이 아니라 신경 쓰는 엔티티를 고유하게 식별하는 열을 선택.


대소문자 구분

문자열 비교는 기본적으로 대소문자 구분: "[email protected]""[email protected]". 대소문자 무시 중복 제거가 필요하면:

  1. 먼저 Excel 정리를 실행하여 공백 트림(종종 진짜 범인)
  2. 대소문자가 여전히 다르면 소스에서 키 열을 소문자로(Excel: =LOWER(A2)) 중복 제거 전에

주요 활용 사례

다중 소스 고객 목록 정리

CRM, 이메일 마케팅 도구, 청구 시스템에서 고객을 임포트. 각각 같은 고객의 약간 다른 변형. email(소문자화 후)로 중복 제거하여 인당 하나의 통합 연락처 획득.

중복 거래 제거

은행 내보내기가 중복 날짜 범위를 다시 가져올 때 가끔 같은 거래를 두 번 포함. 날짜 + 금액 + 설명으로 중복 제거하여 깨끗한 원장.

이중 출퇴근 타임시트 찾기

시급 직원은 가끔 두 번 출근 체크. 급여 기간 타임시트를 employee_id + date로 중복 제거하고 폐기 전 "중복 행" 출력 검토 — 사기와 정직한 실수 모두 잡음.


함정과 대처 방법

문제 원인 해결
"중복" 감지되었으나 행이 달라 보임 키 열에 공백이나 대소문자 차이 먼저 정리 실행; 키를 소문자로 고려
실제 중복이 감지되지 않음 너무 세밀한 키 선택(예: 타임스탬프 포함) 키에서 타임스탬프 제외; 또는 먼저 비교 작업으로 차이 이해
잘못된 행이 유지됨 "첫 번째 유지" vs "마지막 유지" 불일치 다른 설정으로 재실행 — 중복 행 파일은 다른 설정에서 무엇이 유지되었을지 보여줌
파일이 너무 커서 중복 제거 불가 느린 브라우저에서 50만 행 초과 Firefox 또는 Chrome 시도; 다른 탭 닫기. SheetJS 중복 제거는 O(n)이지만 최종 직렬화가 보통 병목

폐기 전 반드시 검토

두 파일 출력(고유 + 중복)은 삭제 전 감사할 수 있도록 특별히 존재. 워크플로우:

  1. 중복 제거 실행
  2. "중복 행" 파일 열기
  3. 임의로 10개 행 점검 — "고유 행"의 무엇인가의 실제 중복처럼 보이는가?
  4. 예 → "중복 행" 안전하게 폐기 가능; 아니오 → 키 열이 잘못됨

개인정보 및 보안

모든 감지와 내보내기는 브라우저에서 SheetJS로 발생. 개인 식별 정보(이메일, 직원 ID, 거래 데이터)는 어떤 서버에도 도달하지 않음.


관련 도구