엑셀에서 정렬 시 셀 값이 숫자이면 "숫자 내림차순 정렬" 혹은 "숫자 오름차순 정렬"로 되고, 셀 값이 문자라면 "텍스트 내림차순 정렬" 혹은 "텍스트 오름차순 정렬"로 되는 것을 확인했었습니다. 이 얘기는 "숫자"와 "텍스트"를 구분한다는 것입니다. 숫자의 경우는 크고 작음이 명확하므로 아무런 문제가 없습니다. 하지만 텍스트의 경우는 조금 애매합니다. 한글이라면 가나다순, 영문이라면 ABC 순으로 짐작할 순 있지만, 한글과 영문이 섞여 있는 경우는 또 어떤 순서가 될지 아직은 알 수 없습니다. 만약 숫자가 포함된 텍스트라면 더더욱 애매합니다. 그래서 이번엔 텍스트 정렬 순서를 결정하는 규칙을 알아보겠습니다.
예제 파일을 열어 주세요.
예제 파일은 한 쇼핑몰의 주문별 주문 수량을 보기 좋게 만들어 놓은 표입니다. 하고자 하는 것은 "주문 수량 범위 오름차순 정렬"입니다.
별거 없죠. 그림처럼 먼저 "주문 수량 범위"의 아무 셀이나 클릭하여 선택하고 홈 > 정렬 및 필터 > 텍스트 오름차순 정렬을 클릭하면 끝납니다.
결과, 뭔가 정렬은 되었는데 예상과는 다른 형태입니다.
"1이상~5미만, 5이상~10미만, 10이상~15미만, 15이상"의 순으로 정렬될 것 같지만, 알 수 없는 형태로 정렬되었습니다.
이유는 텍스트 정렬 순서의 규칙 때문입니다. 텍스트는 한글만 있는 경우도 있지만 위처럼 숫자가 포함된 경우도 있습니다. 영문이 포함될 수도 있죠. 즉 가나다순으로만 정렬 순서가 정해지는 것이 아니란 것입니다. 결국 텍스트 정렬 순서의 규칙을 알아야 정렬 상태를 예측할 수 있다는 얘기입니다.
텍스트 정렬 순서 규칙 : 앞 문자부터 한 글자씩 숫자 → 영문 → 한글 순으로 정렬
즉 오름차순 정렬은,
0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,가,나,다,라,마,바,사,아,자,차,카,타,파,하
의 순이 됩니다. 내림차순이라면 반대가 되겠죠. 그리고 중요한 것은 앞에서부터 한 글자씩 정렬한다는 것입니다.
그래서 위 표의 정렬은,
- 먼저 가장 앞 글자(1과 5)로 정렬 합니다. 오름차순이니 당연히 "1 → 5" 순서가 됩니다.
- 다음, 앞 글자 같은 것들을 두 번째 글자로 정렬합니다. 두 번째 글자는 "0, 5, 이"만 있으니 "0 → 5 → 이" 순서가 됩니다.
앞의 두 글자로 모두 정렬이 결정되니, 나머지 글자는 정렬에 영향을 미치지 않습니다.
그렇다면, 규칙대로 "1이상~5미만, 5이상~10미만, 10이상~15미만, 15이상"으로 정렬되게 하고 싶다면 어떻게 하면 될까요?
앞의 두 글자로 규칙이 정해지니 앞의 두 글자를 규칙에 맞게 셀 값을 변경해 주면 됩니다. "1이상~..."을 "01이상~..."으로, "5이상~..."을 "05이상~..."으로 말이죠.
그림처럼 셀 값을 변경하고 다시 "주문 수량 범위"의 아무 셀이나 선택하고 홈 > 정렬 및 필터 > 텍스트 오름차순 정렬을 진행하면,
그림처럼 "주문 수량 범위 오름차순 정렬"을 완성하게 됩니다.
즉 "주문 수량 범위" 셀 값을 작성할 때 미리 텍스트 정렬 순서 규칙대로 작성했다면 원하는 결과를 얻을 수 있었던 것입니다.
하지만 이미 작성된 값을 이렇게 바꾸진 않겠죠. 만약 데이터의 양이 한 100행 정도만 돼도 이렇게 바꾸는 것은 엄청난 작업이 될 것입니다. 분명 보지 못하고 넘어가는 셀도 생길 것입니다.
그럼 셀 값을 수정하지 않고 원하는 정렬을 만드는 방법은 없을까요?
다음 강좌에서 알아보겠습니다.