중복 줄·CSV 정리
SKU·상품명 목록과 CSV 표에서 중복을 찾습니다. 비교할 열과 남길 행을 고르고, 다른 열의 값이 충돌하는지 확인한 뒤 남긴 목록·제외 목록·전체 검토표를 저장하세요.
입력할 값
- 목록 형식을 고릅니다. TXT는 한 줄을 한 항목으로 읽습니다. CSV는 첫 줄에 열 이름이 있어야 하며 비어 있거나 중복된 열 이름은 수정해야 합니다. 이 도구의 입력 조건이며 모든 CSV가 반드시 헤더를 가져야 한다는 뜻은 아닙니다.
- TXT·CSV 파일은 기본으로 UTF-8로 읽습니다. 글자가 깨지면 「파일 읽는 방식」에서 한국어 Windows(EUC-KR·CP949), UTF-16LE, UTF-16BE 중 파일에 맞는 방식을 선택하세요. 다시 읽은 미리보기에서 글자와 열 이름을 확인하고 반영해야 현재 목록이 바뀝니다. 붙여 넣은 글이나 이미 반영한 목록은 읽는 방식만 바꿔도 달라지지 않습니다. 목록에 적용을 눌러야 현재 입력을 바꿉니다. 취소하거나 읽지 못한 파일은 기존 내용을 덮어쓰지 않습니다.
- CSV 열 확인을 누른 뒤 비교할 열을 고릅니다. 기본은 모든 열입니다. SKU와 옵션 코드를 함께 고르면 두 값이 모두 같을 때만 같은 항목으로 묶습니다. SKU 하나만 고른 경우 다른 열의 수량·상품명이 달라도 중복 그룹이 될 수 있습니다.
- 양끝 공백을 빼고 비교는 기본으로 켜져 있습니다. 영문 대소문자 무시와 NFC는 필요할 때 켜세요. NFC는 같은 글자가 조합형과 완성형으로 표현된 차이를 맞추며 전각 숫자·동그라미 숫자를 일반 숫자로 바꾸지 않습니다. 어느 옵션도 원문 값을 직접 고치지 않습니다.
- TXT의 빈 줄은 기본으로 제외합니다. 빈 줄 제외를 끄면 빈 값도 다른 값처럼 비교합니다. CSV에는 이 옵션을 적용하지 않으며 비교 기준 열이 비어 있는 데이터 행도 개수를 따로 표시합니다.
- 처음 나온 행, 마지막에 나온 행, 중복된 항목 전부 제외 중 하나를 고릅니다. 마지막 행은 입력 순서 기준이며 가장 최근 날짜나 가장 높은 수량을 찾아 주는 기능이 아닙니다. 남긴 목록과 제외 목록은 각각 원래 순서를 유지합니다.
- 중복 검토하기를 누른 뒤 중복 그룹과 다른 값이 있는 열을 확인하세요. 볼 목록에서 남긴 행과 제외한 행을 바꿀 수 있습니다. 입력이나 비교 기준을 수정하면 이전 결과를 지우므로 다시 검토해야 합니다.
엑셀 파일 사용하기
중복을 정리할 상품 목록을 엑셀 파일에서 가져올 수 있습니다. 「엑셀 파일 열기 (.xlsx)」에서 5 MiB 이하의 파일을 선택하세요. 파일은 이 브라우저에서 처리하며 서버로 보내지 않습니다. XLS·XLSM 파일과 암호로 잠긴 파일은 지원하지 않습니다.
- 가져올 시트를 고르고 열 이름이 있는 행, 마지막 행, 시작 열과 마지막 열을 확인합니다. 위쪽 안내문·제목, 아래쪽 합계와 옆쪽 주석은 필요한 표 범위에서 빼세요. 예를 들어 열 이름이 3행이면 4행부터 선택한 마지막 행까지 가져옵니다.
- 비어 있거나 같은 열 이름은 검토 화면에서 고칠 수 있습니다. 선택할 데이터는 열 이름 행을 제외하고 최대 10,000행·50열입니다. 선택한 표를 CSV로 옮겼을 때의 크기도 UTF-8 기준 5 MiB 이하여야 하며, 넘는 범위를 자동으로 잘라 가져오지 않습니다.
- 열마다 저장된 값과 엑셀에 보이는 값의 예시를 비교하고 가져올 기준을 고릅니다. 화면에는 처음 20개 데이터 행을 보여 주지만 오류는 선택 범위 전체에서 확인합니다. 내용이 잘려 보이는 셀을 누르면 전체 내용을 확인할 수 있습니다.
- 수식 셀이 있으면 파일에 저장된 계산 결과를 사용한다는 안내를 확인해야 적용할 수 있습니다. 도구가 수식을 다시 계산하지 않으므로 최신 값인지 원본에서 확인하세요. 저장된 결과가 없거나 오류 값인 셀이 있으면 적용하지 않습니다. 엑셀에서 다시 계산해 저장하거나 값만 담은 표로 준비하세요.
- 미리보기를 확인한 뒤 「표에 적용」을 누릅니다. 확인한 셀 값이 CSV 표 입력으로 옮겨지며 적용 전에는 현재 목록을 바꾸지 않습니다. 적용한 뒤 비교할 열과 남길 행 기준을 확인하고 「중복 검토하기」를 누르세요. SKU와 옵션을 함께 고르면 두 값이 모두 같은 행을 묶습니다. 취소하면 현재 목록과 결과는 유지됩니다.
기본은 문자를 그대로, 숫자는 저장된 값으로 가져옵니다. 텍스트로 저장된 상품코드 00123은 그대로 유지합니다. 숫자 123을 서식으로 00123처럼 보이게 한 열은 「엑셀에 보이는 값」을 선택해야 앞자리 0이 포함됩니다. 금액이 소수 둘째 자리까지만 보이더라도 저장된 값에는 더 많은 자릿수가 있을 수 있으므로 금액·수량 열의 예시를 함께 확인하세요. 15자리를 넘는 숫자 코드는 원본 엑셀에서 이미 반올림되었을 수 있어 사라진 자릿수를 복원할 수 없습니다.
날짜는 기본으로 통합 문서의 날짜 기준에 따라 2026-10-14 같은 연-월-일 형식으로 가져오며, 저장된 시각이 있으면 함께 표시합니다. 날짜를 숫자로 비교하려면 「저장된 값 · 날짜는 숫자」를, 화면 표기가 필요하면 「엑셀에 보이는 값」을 고르고 예시를 확인하세요. 선택 범위의 숨긴 행·열도 포함됩니다. 병합된 셀이 겹치면 원본에서 병합을 풀거나 해당 부분을 범위에서 제외해야 합니다.
TXT의 빈 줄 제외 설정은 가져온 엑셀 표에 적용하지 않습니다. 가져오기 전에 선택한 표 범위를 확인하고, 중복 검토 후 남긴 행과 제외한 행을 함께 살펴보세요.
가져온 텍스트의 상품코드·따옴표·셀 안 줄바꿈은 셀 값으로 유지합니다. JSON에는 선택한 기준으로 가져온 셀 값과 파일명·시트명·선택 범위, 가져온 행이 원래 엑셀의 몇 행인지에 대한 대응이 담깁니다. JSON은 원본 엑셀의 서식·수식·파일 전체를 복원하는 파일이 아니므로 원본 XLSX도 따로 보관하세요. 입력창을 직접 고치거나 다른 자료로 바꾸면 원래 시트·행 번호와의 대응은 유지되지 않습니다. 표 복사와 안전 CSV의 처리는 아래 결과 안내를 따릅니다.
파일이 5 MiB 이하여도 압축을 푼 내용이나 셀 수가 읽기 한도를 넘으면 가져오지 못할 수 있습니다. 필요한 표만 별도 XLSX로 저장해 다시 선택하세요.
계산 방법
선택한 비교 열의 각 값에 사용자가 고른 비교 옵션을 적용한 뒤, 모든 선택 열이 같은 행끼리 묶습니다. 처음 남기기는 각 그룹의 첫 행을, 마지막 남기기는 마지막 행을 남깁니다. 중복 항목 전부 제외는 한 번만 나온 그룹만 남깁니다. 제외한 전체 행 수는 중복 처리로 제외한 행과 TXT 빈 줄 제외를 합한 값입니다. 선택하지 않은 열의 원래 값이 그룹 안에서 다르면 충돌 열로 표시합니다. 수량·금액은 더하지 않습니다.
계산 예시
예시 CSV에는 00123 SKU의 수량 2와 3, 00456 SKU의 수량 1 두 행, 00789 SKU 한 행이 있습니다. 모든 열을 비교하면 완전히 같은 00456 한 행만 제외해 4행이 남습니다. SKU만 비교하고 처음 행을 남기면 3행이 남고, 00123 그룹의 수량 열이 다르다고 표시합니다. 마지막 행을 남기면 00123의 수량 3인 행을 남깁니다. 중복된 항목 전부 제외를 선택하면 한 번만 나온 00789 한 행만 남습니다. 수량 2와 3을 합한 5로 바꾸지는 않습니다.
결과 읽기
입력 행과 원본 줄은 다를 수 있습니다. CSV 셀 안의 줄바꿈은 같은 데이터 행에 들어가지만 원본 파일에서는 여러 줄을 차지하기 때문입니다. 화면에는 결과 목록의 처음 50행과 중복 그룹의 처음 30개를 보여 줍니다. 그룹 행번호는 20개, 각 셀은 220자까지만 표시하며 파일에는 잘리지 않은 전체 값을 담습니다. 전체 검토표 CSV에는 원래 데이터 행·물리 시작 줄·처리 이유·비교 그룹·그룹 행 수·다른 값이 있는 열과 모든 원본 열이 들어갑니다. 엑셀에서 제외된 행을 대조할 때 사용하세요. 전체 검토 기록 JSON에는 비교 옵션과 통계, 모든 그룹과 원문 행을 함께 보관합니다. 검토표는 보고서이므로 입력용 CSV와 열 구조가 다릅니다.
적용 범위
TXT·CSV 파일 원본과 읽은 내용을 UTF-8로 표현한 크기는 각각 최대 5 MiB입니다. 붙여넣기도 UTF-8 기준 5 MiB까지입니다. 최대 10,000행·CSV 50열을 지원합니다. TXT는 제외할 빈 줄도 입력 행 수에 포함하고, CSV는 헤더를 뺀 데이터 행을 셉니다. 탭 구분 TSV·세미콜론 구분 CSV·문자 인코딩 자동 판별은 지원하지 않습니다. XLSX는 별도의 「엑셀 파일 열기 (.xlsx)」에서 가져오세요. CSV는 쉼표로 구분해 저장하세요. 빈 헤더와 중복 헤더를 확인할 때는 양끝 공백과 NFC를 정리한 이름으로 검사하며 대소문자는 구분합니다. CSV의 쉼표·따옴표·셀 안 줄바꿈은 인용 규칙에 맞게 입력해야 합니다. 파일에서 불러온 셀 안 CRLF·CR 줄바꿈은 원문 JSON과 CSV 값에 보존하지만 붙여넣기·직접 편집한 텍스트는 브라우저가 LF로 통일할 수 있습니다. 파일 내용을 직접 편집하거나 TXT·CSV 목록 형식을 바꾸면 편집창의 값을 기준으로 다시 처리합니다. TXT 저장은 원래 줄 내용을 보존하고 줄 구분은 LF로 통일합니다. 안전 CSV는 수식처럼 시작하는 셀에 작은따옴표를 붙이고 변경 수를 알립니다. 복사도 수식을 보호하며 셀 내부 줄바꿈·탭을 공백으로 바꿉니다. 원문 열 값은 JSON으로 보관하세요. TXT·CSV로 입력한 값은 숫자로 자동 변환하지 않지만 스프레드시트가 CSV를 열며 앞자리 0을 지울 수 있으므로 SKU 열을 텍스트로 가져오세요. 결과 파일은 UTF-8로 저장하며 원본 파일의 바이트를 그대로 복제하지는 않습니다. 목록은 서버로 전송하거나 브라우저 저장소에 저장하지 않습니다. 도구를 벗어나거나 새로고침하면 입력이 사라지므로 필요한 결과를 먼저 저장하세요.
자주 묻는 질문
SKU만 같은 행을 지워도 되나요?
비교 열을 SKU 하나로 고를 수 있습니다. 다만 같은 SKU의 수량이나 상품명이 다르면 충돌 그룹으로 표시합니다. 어느 행을 남길지 확인하세요. 서로 다른 주문을 합치려는 목적이면 SKU별 수량 합계를 사용해야 합니다.
처음 남기기와 중복 전부 제외는 어떻게 다른가요?
A, A, B를 넣으면 처음 남기기는 A와 B를 남깁니다. 중복 전부 제외는 두 A를 모두 제외하고 B만 남깁니다. 제외 목록을 따로 저장해 어떤 행이 빠졌는지 확인할 수 있습니다.
비교 옵션을 켜면 원래 글자가 바뀌나요?
아니요. 예를 들어 양끝 공백을 빼고 비교해도 남긴 행의 공백은 유지합니다. 대소문자와 NFC도 비교에만 적용합니다. 단, 스프레드시트용 복사·CSV의 수식 보호와 복사 시 줄바꿈·탭 정리는 별도의 내보내기 처리입니다.
00123과 123을 같은 SKU로 보나요?
다른 문자열로 비교합니다. 00123을 숫자 123으로 바꾸지 않습니다. Excel에서 CSV를 가져올 때도 해당 열의 데이터 형식을 텍스트로 설정해야 앞자리 0이 유지됩니다.
CSV의 빈 셀과 빈 행은 어떻게 처리하나요?
선택한 비교 열이 비어 있으면 빈 비교 키로 처리하며 여러 빈 키도 중복이 될 수 있습니다. CSV 데이터 행을 몰래 생략하지 않습니다. 열 개수가 맞지 않는 빈 행은 형식을 고치도록 안내합니다. TXT 빈 줄 제외 옵션은 CSV에 적용하지 않습니다.
파일 선택만 했는데 원래 목록이 바뀌나요?
파일 선택 단계에서는 유지됩니다. 미리보기를 확인한 뒤 목록에 적용을 누르면 바뀌고 이전 결과는 사라집니다. 읽기 취소·입력 변경·도구 이동 뒤 늦게 끝난 파일 읽기가 다시 입력을 채우지 않도록 처리합니다.
검토표 CSV와 원문 JSON 중 무엇을 저장하나요?
엑셀에서 원래 행번호와 처리 이유를 보려면 전체 검토표 CSV를 저장하세요. 원문 셀과 그룹·비교 조건을 보관하려면 전체 검토 기록 JSON을 함께 저장하세요. 남긴 목록만 또는 제외 목록만 필요하면 볼 목록을 바꾼 뒤 선택 목록 저장을 사용합니다.
CSV에 작은따옴표가 붙는 이유는 무엇인가요?
수식처럼 시작하는 셀을 스프레드시트가 실행하지 않도록 앞에 안전 표시를 붙입니다. 변경된 셀과 데이터 행·헤더 셀 수를 알립니다. 원래 값이 꼭 필요한 경우 JSON을 보관하세요. TXT는 수식 보호가 없으므로 스프레드시트에 넣을 때는 안전 복사나 CSV를 쓰세요.
화면에 50행만 보여도 전체 결과가 저장되나요?
네. 목록 미리보기는 50행으로 제한하지만 선택 목록 저장·복사는 전체 남긴 행 또는 전체 제외한 행을 대상으로 합니다. 전체 검토표에는 제외된 빈 줄을 포함한 모든 데이터 행을 담습니다.
같은 값의 거래를 자동으로 합쳐 주나요?
합산하지 않습니다. 서로 다른 결제나 주문이 같은 금액·SKU를 가질 수 있으므로 그 값을 기준으로 중복을 지우기 전에 거래ID 같은 구분 열을 함께 선택하세요. 결과는 입력한 비교 조건에 따른 정리일 뿐 같은 거래라는 판정이 아닙니다.
헤더가 없거나 열 이름이 두 번 나오면 어떻게 하나요?
이번 도구에서는 먼저 고쳐야 합니다. 첫 줄에 각 열을 구분할 이름을 붙이고 빈 이름·중복 이름을 수정한 뒤 다시 검토하세요. 자동으로 이름을 만들어 잘못된 열을 비교하지 않도록 한 입력 조건입니다.
단위와 계산 기준의 출처
- RFC Editor · RFC 4180 CSV의 인용·행 구조
- MDN · String.normalize의 NFC 정규화
- Microsoft · Excel에서 앞자리 0과 긴 숫자 유지