CSV 중복 제거 기준: 행 전체 vs 특정 열의 차이

고객 명단이 담긴 CSV 파일에서 중복된 행을 지워야 할 때, 많은 사람이 놓치는 질문이 하나 있습니다. 바로 "무엇이 같아야 중복인가"입니다. 이름·이메일·도시가 전부 똑같아야 중복으로 볼지, 이메일 하나만 같아도 중복으로 볼지에 따라 지워지는 행의 개수가 완전히 달라집니다.

이 기준을 정하지 않은 채 "중복 제거"부터 실행하면 두 가지 사고가 날 수 있습니다. 서로 다른 사람의 데이터가 한 행으로 합쳐져 지워지거나, 반대로 같은 사람의 데이터가 두 번 남은 채로 넘어갑니다.

요약 ① 행 전체가 완전히 같아야 중복으로 볼지, 특정 열(이메일 등) 하나만 같아도 중복으로 볼지는 서로 다른 기준이며 결과 행 수가 달라집니다. ② 기준을 행 전체로 좁히면 오탈자·대소문자 차이로 같은 사람의 데이터가 중복 처리되지 않고 그대로 남을 수 있습니다. ③ 기준을 특정 열 하나로 넓히면 그 열의 값을 우연히 공유하는 서로 다른 사람의 데이터가 한 행으로 합쳐져 지워질 수 있습니다.

"중복"이라는 말이 감추고 있는 것

"중복 행을 지워주세요"라는 말은 간단해 보이지만, 실제로는 "무엇이 같으면 같은 데이터로 볼 것인가"라는 판단을 이미 전제하고 있습니다. 이 판단 기준이 다르면 같은 파일에서도 완전히 다른 결과가 나옵니다.

이름이메일도시
홍길동hong@example.com서울
홍길동HONG@example.com서울

이 두 행은 사람 눈에는 명백히 같은 사람의 정보입니다. 하지만 문자열을 있는 그대로 비교하면 대문자 HONG과 소문자 hong은 다른 문자열이므로, "행 전체가 완전히 같아야 중복"이라는 기준으로는 두 행이 서로 다른 데이터로 판정됩니다.

기준이 너무 좁으면 — 진짜 중복을 놓친다

행 전체를 기준으로 삼으면 가장 엄격하게 걸러낼 수 있을 것 같지만, 실제로는 정반대의 문제가 생깁니다. 열 하나라도 값이 다르면 중복으로 인식되지 않기 때문에, 같은 사람의 정보라도 한 글자만 달라지면 그대로 남습니다.

칸 하나에 공백이 더 들어갔거나, 도시 이름을 "서울"과 "서울특별시"로 다르게 적었거나, 이메일 대소문자가 섞여 있는 경우가 모두 여기 해당합니다. 이런 미세한 차이는 사람이 수천 행을 눈으로 훑어서는 좀처럼 찾아내기 어렵습니다.

기준이 너무 넓으면 — 다른 사람을 지운다

이름이메일도시
김민수family@example.com서울
김민지family@example.com대전

이번에는 반대 상황입니다. 두 행은 이름과 도시가 다른, 분명히 다른 두 사람의 정보입니다. 그런데 가족이 이메일 주소 하나를 함께 쓰는 경우처럼, 이메일 열만 놓고 보면 완전히 같은 값입니다.

이 상태에서 "이메일 열만 같으면 중복"이라는 기준을 적용하면, 둘 중 한 사람의 데이터가 다른 사람의 중복으로 오인되어 지워집니다. 기준을 좁게 잡을 때보다 넓게 잡을 때 이런 사고가 더 조용히 일어납니다. 화면에는 그냥 행 하나가 줄어들 뿐, 무엇이 사라졌는지는 표시되지 않기 때문입니다.

도구 없이 먼저 확인하는 법: 정렬 + COUNTIF

엑셀이나 스프레드시트에서 손으로 확인하려면, 먼저 기준으로 삼을 열(예: 이메일)을 기준으로 정렬합니다. 같은 값이 바로 위아래로 붙어야 눈으로 비교하기 쉬워지기 때문입니다.

정렬한 뒤에는 COUNTIF 같은 함수로 그 열의 값이 몇 번 나타나는지 세어, 2번 이상 나온 값만 걸러내는 방식으로 후보를 좁힐 수 있습니다. 다만 이 작업은 기준 열을 바꿀 때마다(예: 이메일 기준에서 행 전체 기준으로) 정렬과 수식을 처음부터 다시 만들어야 하고, 행이 수천 개를 넘어가면 수식이 무거워져 시트가 버벅이기 시작합니다.

기준을 한 번 정하고 끝나는 작업이 아니라 결과를 보면서 기준을 바꿔 다시 확인해야 하는 경우가 많다는 점에서, 이 작업은 특히 번거롭습니다.

CSV 중복 행 제거

CSV를 붙여넣거나 파일을 올리면, 행 전체 또는 특정 열을 기준으로 골라 중복 행을 즉시 정리할 수 있습니다.

도구가 두 기준을 모두 고르게 해주는 이유

CSV 중복 제거 도구는 중복 판정 기준을 행 전체와 특정 열 중에서 직접 선택하도록 만들어져 있습니다. 아무 기준이나 자동으로 정해주지 않고, 데이터를 붙여넣으면 첫 행(헤더)에 있는 열 이름들을 그대로 골라 쓸 수 있는 목록으로 보여줍니다.

기준을 "전체 행(모든 열 동일)"으로 두면 앞서 본 첫 번째 사례처럼 대소문자 차이가 있는 행을 놓칠 수 있습니다. 이때는 "대소문자 무시"와 "공백 차이 무시" 옵션을 따로 켤 수 있어서, 열 전체를 기준으로 삼으면서도 사소한 표기 차이는 같은 값으로 취급하도록 조정할 수 있습니다. 반대로 이메일처럼 특정 열 하나만 기준으로 잡고 싶다면 드롭다운에서 그 열을 고르면 되지만, 두 번째 사례처럼 그 열의 값을 여러 사람이 공유할 가능성이 있다면 좁혀 잡은 기준이 오히려 사고로 이어질 수 있다는 점을 함께 감안해야 합니다.

기준이나 옵션을 바꿀 때마다 입력 데이터 행·제거된 중복·남은 고유 행 숫자가 즉시 다시 계산되므로, 실제로 파일을 내려받기 전에 어떤 기준을 골랐을 때 몇 행이 지워지는지 먼저 눈으로 비교해볼 수 있습니다.

첫 번째로 나온 행이 남는다는 점도 함께 확인하세요

기준을 무엇으로 잡든 이 도구는 같은 값을 가진 행 중 파일에서 가장 먼저 등장한 행을 남기고, 그 뒤에 나오는 행을 중복으로 지웁니다. 정렬 순서 자체는 바꾸지 않으므로, 원본 파일에서 나중에 추가된 정보가 최신값이었다면 그 행이 지워지지 않도록 미리 순서를 맞춰두는 편이 안전합니다.

정리된 결과는 CSV 파일로 내려받거나 그대로 복사할 수 있고, 쉼표 외에 탭·세미콜론·파이프로 구분된 파일도 구분자만 바꿔 같은 방식으로 처리할 수 있습니다.

정리

  • 행 전체가 완전히 같아야 중복으로 볼지, 특정 열 하나만 같아도 중복으로 볼지는 서로 다른 기준이며 결과가 달라집니다.
  • 기준을 행 전체로 좁히면 대소문자나 공백 차이가 있는 진짜 중복을 놓칠 수 있습니다.
  • 기준을 특정 열 하나로 넓히면 그 값을 우연히 공유하는 서로 다른 사람의 데이터가 지워질 수 있습니다.
  • 정렬과 COUNTIF로 손으로 확인할 수는 있지만, 기준을 바꿔 다시 비교할 때마다 처음부터 다시 만들어야 합니다.
  • 기준(행 전체/특정 열)과 대소문자·공백 무시 여부를 직접 선택하면, 몇 행이 지워지는지 실행 전에 먼저 비교할 수 있습니다.
CSV 중복 행 제거

CSV를 붙여넣거나 파일을 올리면, 행 전체 또는 특정 열을 기준으로 골라 중복 행을 즉시 정리할 수 있습니다.

자주 묻는 질문

특정 열 하나만 기준으로 잡아도 되나요?

가능합니다. 다만 그 열의 값을 서로 다른 사람이 공유할 가능성이 있는지 먼저 생각해야 합니다. 가족이 이메일 하나를 함께 쓰거나 같은 부서 대표 연락처를 여러 사람이 등록해둔 경우처럼 값이 겹칠 수 있는 열을 단독 기준으로 삼으면, 실제로는 다른 사람의 데이터가 중복으로 지워질 수 있습니다.

대소문자나 공백 차이 때문에 중복이 안 잡히면 어떻게 하나요?

기준 열이나 행 전체를 비교할 때 문자열을 있는 그대로 비교하면 "Hong"과 "hong", 또는 앞뒤 공백이 있는 값과 없는 값은 서로 다른 값으로 처리됩니다. 이런 차이까지 같은 값으로 묶어서 보고 싶다면 대소문자 무시와 공백 차이 무시 옵션을 함께 켜서 다시 확인하면 됩니다.

이름과 이메일 두 열이 모두 같을 때만 중복으로 보고 싶은데 가능한가요?

이 도구는 행 전체를 기준으로 삼거나 특정 열 하나를 기준으로 삼는 두 가지 방식을 지원합니다. 두세 개 열만 골라 조합하는 기준은 현재 지원하지 않으므로, 그런 조합이 꼭 필요하다면 원본에서 이름과 이메일 두 열의 값을 미리 하나의 열로 합쳐 넣어두는 방식으로 우회해야 합니다.

중복을 지울 때 어떤 행이 남고 어떤 행이 지워지나요?

같은 값을 가진 행 중 파일에서 더 먼저 등장한 행이 남고, 그 뒤에 나오는 행이 중복으로 지워집니다. 정렬 순서 자체를 바꾸지는 않으므로, 최신 정보가 나중 행에 있다면 지워지는 쪽이 최신 데이터일 수 있다는 점을 감안해 미리 순서를 정리해두는 편이 좋습니다.

가격 보기카톡 무료 상담