• 최초 작성일: 2006-06-30
  • 최종 수정일: 2026-09-26
  • 조회수: 20 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: 한 셀의 숫자 내용을 큰 수부터 정렬하기

들어가기 전에

오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.

게시판에 올라온 질문에서 출발해, 한 셀에 입력된 숫자의 각 자릿값을 큰 수부터 다시 배열하는 방법을 살펴봅니다.

한 셀에 "23110"이 있다고 할 때 큰 수부터 정렬하여 새로운 숫자로 만들고 싶습니다. 수식으로 가능한 방법이 있을까요?

권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

필자는 Excel 컨설턴트, 작가, 그리고 크리에이터입니다. 현재 Microsoft Excel MVP이며, 『챗GPT+엑셀 업무자동화 정석』을 비롯한 10여 권의 도서를 집필했습니다. Excel 자동화 및 생산성 향상 분야에서 25년 넘는 경력을 보유하고 있습니다.

권현욱(엑셀러) 님의 최신 포스트:
  • 최신 글을 불러오는 중...


26년 경력 Microsoft MVP 권현욱(엑셀러) 지음

📊 신간 전자책(PDF) · 287쪽 · 13500원

엑셀 대시보드를 만드는 최적의 '표준 3계층 구조'

  • 3초 안에 읽히는 화면 설계 감각 습득
  • Microsoft Excel MVP의 실전 노하우 수록
  • 중간마진 없는 합리적인 가격, 오직 아이엑셀러에서만!
지금 구매하기 완성 화면 보기

한 셀의 숫자 내용을 큰 수부터 정렬하기

핵심 요약

한 셀에 들어 있는 숫자를 한 자리씩 분리한 뒤 LARGE 함수로 큰 숫자부터 선택하고, 각 자릿값을 다시 조합하면 새로운 숫자를 만들 수 있습니다.

  • MID로 각 자리 숫자를 분리합니다.
  • LARGE로 큰 숫자부터 가져옵니다.
  • ROW,INDIRECT로 필요한 순위를 배열로 만듭니다.
  • 10의 거듭제곱을 곱해 원래 자릿값으로 되돌립니다.

예제와 결과

정렬 전정렬 후
2431043210
123321
123190932110

사용할 수식

=SUM(LARGE(MID(A2,ROW(INDIRECT(1&":"&LEN(A2))),1)*1,ROW(INDIRECT(1&":"&LEN(A2))))*10^(LEN(A2)-ROW(INDIRECT(1&":"&LEN(A2)))))

이 수식은 크게 두 부분으로 나눠 볼 수 있습니다. 먼저 숫자의 각 자리를 분리해 크기순으로 정렬하고, 그 숫자를 다시 원래 자리 구조에 맞게 배치합니다.

수식의 작동 원리

1. 숫자의 자릿수 파악하기

ROW(INDIRECT(1&":"&LEN(B31)))

B31의 길이를 구하고 INDIRECT와 ROW를 이용해 각 자리에 대응하는 배열을 만듭니다. 예제에서는 {1;2;3;4;5}에 해당하는 위치 정보가 만들어집니다.

2. 각 자리의 숫자를 큰 순서로 추출하기

LARGE(VALUE(MID(B31,ROW(INDIRECT(1&":"&LEN(B31))),1)),ROW(INDIRECT(1&":"&LEN(B31))))

MID로 한 자리씩 분리하고 VALUE로 숫자로 변환한 다음 LARGE를 이용해 1순위부터 차례대로 큰 값을 가져옵니다.

3. 각 숫자를 자릿값에 맞게 배치하기

10^(LEN(B31)-ROW(INDIRECT(1&":"&LEN(B31))))

예를 들어 5자리 숫자라면 10,000·1,000·100·10·1을 각 숫자에 대응시킵니다.

따라서 예제의 중간 계산은 다음과 같습니다.

=SUM({4;3;2;1;0}*{10000;1000;100;10;1})
=SUM({40000;3000;200;10;0})
=43210

이 수식은 배열 계산을 사용하므로 해당 Excel 버전에서는 수식을 입력한 뒤 Ctrl+Shift+Enter로 마무리해야 합니다.

정리

함수역할
MID문자열에서 한 자리씩 추출
LARGE큰 값부터 순서대로 추출
ROW/INDIRECT자리와 순위를 배열로 생성
SUM각 자릿값을 합쳐 최종 숫자 생성

자주 묻는 질문 (FAQ)

한 셀의 숫자를 큰 순서로 정렬할 수 있나요?

MID로 각 자릿값을 분리하고 LARGE로 큰 값부터 가져온 뒤 자릿값을 다시 조합하면 됩니다.

이 수식은 배열 수식인가요?

원본 예제에서는 배열 계산을 사용하므로 구버전 Excel에서는 Ctrl+Shift+Enter로 입력합니다.

문자열에도 같은 방법을 쓸 수 있나요?

숫자처럼 각 문자를 비교하고 재배치하는 문제라면 유사한 방식으로 응용할 수 있습니다.

마치며

한 셀 안의 숫자도 함수들을 조합하면 각 자리로 분해하고 원하는 순서로 다시 조립할 수 있습니다. 복잡해 보이는 배열 수식도 작은 단위로 나누어 보면 작동 원리를 이해하기가 한결 쉬워집니다.