스프레드시트 중복 행 삭제 전, 어떤 열을 기준으로 비교해야 할까
엑셀·스프레드시트에서 중복 행을 지우기 전에 주문번호, 고객명, 날짜, 상태값 가운데 어떤 열을 식별 키로 삼을지 정하고 수정 이력과 진짜 중복을 구분하는 실무 방법을 설명합니다.
스프레드시트에 똑같아 보이는 행이 두 개 있으면 중복 제거 기능부터 실행하기 쉽습니다. 하지만 행의 모든 값이 같은 경우, 하나의 거래를 두 번 가져온 경우, 같은 고객의 다른 주문인 경우는 서로 다른 문제입니다. 어떤 열을 기준으로 비교했는지 정하지 않으면 실제로 필요한 기록까지 사라질 수 있습니다.
중복 제거 작업의 출발점은 버튼이 아니라 **‘한 행이 무엇 하나를 뜻하는가’**라는 질문입니다. 주문 한 건인지, 고객 한 명인지, 입금 한 번인지에 따라 같은 데이터라도 중복 판단이 달라집니다. 아래 기준은 Excel이나 Google 스프레드시트처럼 표 형태로 데이터를 다루는 도구에서 공통으로 적용할 수 있는 원칙입니다.
고객 이름이 같아도 주문은 두 건일 수 있다
예를 들어 주문 데이터에 다음 기록이 있다고 가정해 보겠습니다.
| 주문번호 | 고객 | 주문일 | 금액 | 상태 |
|---|---|---|---|---|
| O-1041 | 김하늘 | 10/06 | 28,000 | 접수 |
| O-1041 | 김하늘 | 10/06 | 28,000 | 완료 |
| O-1042 | 김하늘 | 10/06 | 28,000 | 접수 |
| O-1042 | 김하늘 | 10/06 | 28,000 | 접수 |
이 표에서 고객명·날짜·금액만 비교하면 네 행이 모두 같은 거래처럼 보일 수 있습니다. 하지만 주문번호 O-1041과 O-1042는 서로 다른 주문입니다. 같은 고객이 같은 날 같은 금액으로 두 번 주문할 수도 있기 때문입니다.
또 O-1041 두 행은 주문번호가 같아도 상태가 다릅니다. 이것이 수정 이력인지, 최종 상태를 중복 수집한 결과인지에 따라 처리 방법이 달라집니다. O-1042의 두 행은 완전히 같아 보이지만 중복 수집인지 별도의 이벤트 기록인지 원본 시스템의 의미를 확인해야 합니다.
따라서 고객명이나 날짜처럼 값이 자주 반복되는 열은 보통 거래 한 건을 식별하는 기준으로 불충분합니다. 데이터의 단위를 설명할 수 있는 열이 필요합니다.
식별 키는 ‘구분할 대상’을 기준으로 고른다
식별 키는 어떤 행을 다른 행과 구분하기 위해 사용하는 값입니다. 주문번호처럼 하나의 거래에 고유하게 부여되는 값이 있으면 좋은 출발점이 됩니다. 다만 주문번호가 취소 후 재사용되는 구조인지, 쇼핑몰이 여러 개인데 번호 체계가 겹치는지 등 데이터 출처의 조건을 확인해야 합니다.
독립적인 단일 키가 없다면 복합 키를 만들 수 있습니다. 예를 들어 지점별로만 고유한 접수번호를 사용한다면 지점코드 + 접수번호가 하나의 식별 기준이 될 수 있습니다. 단순히 이름+날짜를 조합하는 것보다 업무에서 실제로 구분하는 단위와 맞아야 합니다.
데이터에 고객 식별번호가 있더라도 그것이 ‘고객 1명’을 구분하는지 ‘주문 1건’을 구분하는지는 별개의 문제입니다. 고객 목록을 정리할 때 쓰는 키를 주문 목록에 그대로 적용하지 않도록 주의하세요.
삭제 가능한 중복과 남겨야 하는 이력의 차이
업무 원본에서 같은 키가 여러 번 등장했다고 해서 반드시 오류는 아닙니다.
- 중복 수집: 같은 주문이 같은 내용과 같은 수집 시점으로 두 번 들어온 경우. 원본·수집 로그를 비교해 중복 수집임을 확인해야 합니다.
- 상태 변경 이력: 같은 주문이 ‘접수 → 완료’로 바뀐 기록. 최종 상태표를 만드는 목적이라면 최신 유효 상태를 골라야 하고, 변경 이력이 필요하면 두 행 모두 남길 수 있습니다.
- 하나의 주문에 여러 품목: 주문번호는 같고 품목번호가 다른 경우. 주문 행이 아니라 품목 행이라면 주문번호만으로 중복 제거하면 안 됩니다.
특히 ‘가장 아래 행을 남긴다’는 규칙은 정렬이나 가져오기 순서가 바뀌면 잘못된 결과를 냅니다. 최신을 가려야 한다면 변경 시각, 이벤트 순서, 승인 상태처럼 신뢰할 수 있는 판단 기준을 먼저 정해야 합니다. 변경 시각이 비어 있거나 같은 시각에 여러 기록이 있다면 자동으로 하나를 고르는 대신 검토 대상으로 표시합니다.
삭제하기 전 별도 표에서 중복 후보를 분류한다
원본 데이터는 그대로 두고 작업용 사본을 만듭니다. 원본을 보존하는 이유는 잘못 삭제했을 때 단순히 ‘실행 취소’에 기대지 않고 기준을 다시 검증할 수 있게 하기 위해서입니다.
작업용 표에는 사용 목적에 맞는 식별 키 열과 검토 상태 열을 둡니다. 예를 들어 아래처럼 분류할 수 있습니다.
| 키 | 중복 표시 | 처리 상태 |
|---|---|---|
| 지점A-O1041 | 2건 | 상태 이력 확인 |
| 지점A-O1042 | 2건 | 동일 기록 여부 조사 |
| 지점B-O1041 | 1건 | 유지 |
이때 이름의 띄어쓰기나 날짜의 표시 형식, 주문번호의 앞자리 0 같은 값은 조심해야 합니다. 눈에 똑같아 보이는 두 값이 내부적으로 다르거나, 반대로 숫자로 변환되며 다른 식별자가 같은 값이 될 수 있습니다. 식별번호는 숫자 계산 대상이 아니라 문자로 다뤄야 할 때가 많습니다. 데이터를 정규화할 때도 원본 값 열은 남겨두세요.
업무 전체의 열 구조와 데이터 유형을 처음부터 다시 정리해야 한다면 원본 스프레드시트를 보존하면서 정리하는 기준을 먼저 적용할 수 있습니다.
실제로 제거했다면 건수만 보지 말고 남은 행을 검증한다
중복 후보가 20건 발견됐다고 해서 반드시 20행을 지우는 것은 아닙니다. 하나의 키가 세 번 등장해도 한 행을 남기는 작업에서는 두 행만 제거하기 때문입니다. ‘중복된 키의 수’, ‘후보 행의 수’, ‘제거된 행의 수’를 다른 수치로 다뤄야 합니다.
작업 뒤에는 다음을 확인합니다.
- 처리 전 총행 수와 처리 후 총행 수, 별도로 보관한 제거 행 수가 서로 맞는가.
- 유일해야 하는 키가 결과표에 실제로 한 번씩만 나타나는가.
- 상태 변경 이력과 품목별 기록처럼 필요한 반복은 잘못 사라지지 않았는가.
- 제외된 기록을 원본 행 번호나 식별 키로 다시 찾아 복원할 수 있는가.
결과를 외부로 전달해야 한다면 삭제한 행 목록을 곧바로 버리지 말고 검증 자료로 보관합니다. 특히 다른 팀이 사용하는 집계표가 이 데이터를 참조한다면, 제거 기준과 변경된 행 수를 함께 알려야 집계 차이를 설명할 수 있습니다.
반복 업무라면 키 규칙을 문서로 남긴다
매주 파일을 받아 같은 중복 제거를 반복한다면 담당자가 매번 눈으로 판정하는 방식은 오래 유지되기 어렵습니다. 데이터 한 행의 의미, 키로 쓰는 열, 남길 기록의 우선순위, 판단 불가 행의 처리자를 짧게라도 문서화하세요.
예를 들어 ‘같은 지점·주문번호가 여러 건이고 변경 시각이 다르면 승인된 최신 상태 한 행만 집계용 표에 유지한다. 변경 시각이 없으면 자동 삭제하지 않고 검토 대기한다’처럼 쓸 수 있습니다. 원본의 이력을 보존하는 것과 보고용 표를 한 행으로 만드는 것은 별개의 작업임을 명시해야 합니다.
입력 단계에서부터 중복을 줄이고 싶다면 날짜·식별자·상태를 열 단위로 표준화하는 방법을 참고할 만합니다.
스프레드시트 중복 제거의 품질은 삭제 버튼을 얼마나 빨리 눌렀는지가 아니라 무엇을 같은 기록으로 볼지 설명할 수 있고, 제거한 행을 나중에 추적할 수 있는지로 판단해야 합니다. 기준이 불분명하면 삭제는 보류하고 먼저 표의 데이터 단위부터 확인하세요.