숫자 정렬이 1, 10, 2로 나올 때 해결 방법

번호가 1, 2, 10인 자료를 정렬했는데 1, 10, 2가 되었다면 프로그램이 숫자를 문자로 비교했을 수 있습니다. 그렇다고 모든 값을 숫자로 바꾸는 것이 정답은 아닙니다. 고객번호처럼 앞의 0이 의미 있는 값은 원문을 지켜야 합니다.

세 항목으로 원인을 확인합니다

아래는 JavaScript의 문자열 배열을 이용한 재현 예제입니다. 기본 정렬은 숫자의 크기를 계산하는 대신 문자열 순서를 비교합니다. 10은 첫 글자가 1이라서 2보다 앞에 놓입니다. 숫자로 해석해 차이를 비교하면 결과가 달라집니다.

원본: ["1", "2", "10"]
문자 기준: ["1", "10", "2"]
숫자 기준: ["1", "2", "10"]

식별자와 계산할 숫자를 구분합니다

수량 10은 수량 2보다 큰 숫자입니다. 반면 부품번호 A10과 A2의 순서는 업무 규칙에 따라 다를 수 있습니다. 숫자처럼 보이는 식별자를 변환하면 001과 1이 같은 값으로 합쳐질 수도 있습니다. 원본 식별자는 문자열로 두고 정렬에 사용할 별도 기준만 만드는 방법을 고려하세요.

자료먼저 확인할 기준주의점
수량·횟수숫자 크기단위와 빈칸을 먼저 구분
001, 01, 1서로 다른 식별자인지숫자 변환 후 원문 손실
메모1, 메모10, 메모2숫자 부분을 크기로 볼지자연 정렬 지원 여부
2026-2, 2026-10월을 두 자리로 맞출지문자 순서와 달력 순서 차이

혼합된 열은 한 번에 변환하지 않습니다

한 열에 2, 10개, 미정이 섞여 있다면 숫자 정렬을 적용하기 전에 자료를 분류해야 합니다. 숫자를 읽지 못한 값을 자동으로 0으로 처리하면 미정이 실제 0과 섞입니다. 반대로 앞부분만 읽는 방식은 10개를 10으로 만들면서 뒤의 단위를 놓칠 수 있습니다. 값과 단위를 분리하고 변환 실패 행을 따로 남기세요.

파일 이름은 자릿수를 맞추면 단순해집니다

본인이 새로 이름을 정하는 가상 파일이라면 메모_01, 메모_02, 메모_10처럼 숫자의 폭을 맞출 수 있습니다. 최대 번호가 999까지라면 001처럼 세 자리 규칙을 쓰는 식입니다. 이미 공유한 파일의 이름을 바꾸면 다른 문서의 참조가 끊길 수 있으므로 이름 대응표와 사본부터 준비합니다.

정렬이 끝나도 원래 행 묶음은 지켜야 합니다

스프레드시트에서 번호 열만 정렬하면 옆의 이름이나 수량이 원래 행과 어긋날 수 있습니다. 표 전체를 함께 정렬하고, 작업 전에 기록한 두세 개의 식별자를 찾아 다른 열이 따라 움직였는지 확인합니다. 마지막으로 2와 10, 앞자리 0이 있는 값, 미정 같은 경계 사례를 따로 보세요. 정렬 순서가 보기 좋아졌다는 이유만으로 데이터 관계가 보존된 것은 아닙니다.

참고 자료와 확인 범위

아래 자료는 형식·기능의 정의를 확인하는 데 사용했습니다. 본문의 예제와 설명은 이 사이트의 작업 상황에 맞춰 구성했습니다. 제품 메뉴는 버전과 언어에 따라 다를 수 있습니다.

확인일: 2026-10-16 · 오류를 발견하면 이 글의 오류 신고로 알려주세요.