- 최초 작성일: 2001-02-21
- 최종 수정일: 2026-09-29
- 조회수: 32 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 숫자를 여러 셀에 나누어 담기
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
특정 셀에 숫자가 들어있다고 가정합니다. 이 숫자를 각 자리수에 따라 별도의 셀에 나누어 표기를 해야 한다면 어떻게 해야 할까요?
무슨 소리냐구요? (표 1)과 같은 자료가 있습니다.
숫자를 여러 셀에 나누어 담기
핵심 요약
- 하나의 셀에 있는 숫자를 각 자리수별로 나누어 여러 셀에 표시하려면 문자열 함수와 배열 수식을 조합할 수 있습니다.
- REPT와 LEN으로 숫자 앞을 공백으로 채워 일정한 길이를 만든 뒤 MID와 COLUMN으로 각 위치의 한 글자씩 가져옵니다.
- 대상 범위를 먼저 선택하고 수식을 입력한 다음 Ctrl+Shift+Enter로 확정하면 각 자리수가 한 번에 분리됩니다.
(표 1)
| 금액 | 십 | 억 | 천 | 백 | 십 | 만 | 천 | 백 | 십 | 일 |
71234567 1000 129099 115 6369
이 표에서 금액란에 있는 값을 각 자리수 별로 별도의 칸에 나누어 담고 싶다는 것입니다. VBA로 코딩을 해도 가능하겠습니다만 배열수식(Array Formula)과 문자열 함수를 잘 조합하면 코딩을 않고서도 충분히 가능합니다. (표 2)와 같이 말입니다.
(표 2)
| 금액 | 십 | 억 | 천 | 백 | 십 | 만 | 천 | 백 | 십 | 일 |
| 99999999 | {=MID(REPT(" ",10-LEN(B27))&B27,COLUMN()-2,1)} | 9 | 9 | 9 | 9 | 9 | 9 | 9 | 9 | |
| 1000 | {=MID(REPT(" ",10-LEN(B28))&B28,COLUMN()-2,1)} | 1 | 0 | 0 | 0 | |||||
| 129099 | {=MID(REPT(" ",10-LEN(B29))&B29,COLUMN()-2,1)} | 1 | 2 | 9 | 0 | 9 | 9 | |||
| 12345 | {=MID(REPT(" ",10-LEN(B30))&B30,COLUMN()-2,1)} | 1 | 2 | 3 | 4 | 5 | ||||
| 678 | {=MID(REPT(" ",10-LEN(B31))&B31,COLUMN()-2,1)} | 6 | 7 | 8 | ||||||
| =SUM(B27:B31) | {=MID(REPT(" ",10-LEN(B32))&B32,COLUMN()-2,1)} | 1 | 0 | 0 | 1 | 4 | 3 | 1 | 2 | 1 |
(1) 대상 범위를 선택합니다((표 1)에서 회색으로 칠한 부분).
(2) 아래와 같은 수식을 입력한 다음, Ctrl + Shift + Enter키를 함께 탁 칩니다.
=MID(REPT(" ",10-LEN(B27)) & B27,COLUMN()-2,1)
수식의 좌우에 중괄호({})가 생기면서 (표 2)와 같이 완성될 것입니다.
How It Works
그렇다면 이 수식이 어떻게 그런 일을 가능하게 하는 것일까요? Rept는 텍스트를 지정한 횟수만큼 반복해 주는 함수입니다. 따라서 자리수가 10자리 미만인 수는 앞에다가 공백(" ")을 채워넣습니다.
10자리로 모두 맞춘 다음 Column 함수를 사용해서 각 자리수 별로 한 자리씩 떼어서 채워넣는 것이지요.
아마 이것 말고도 다른 좋은 방법이 있으리란 생각이 드는데, 직접 한번 해 보시고 좋은 아이디어가 생각나는 분은 연락주시기 바랍니다.
다음 시간에…
정리 — 숫자를 여러 셀에 나누어 담기
| 구분 | 내용 |
|---|---|
| 목적 | 한 셀의 숫자를 자리수별로 여러 셀에 나누어 담기 |
| 수식 | {=MID(REPT(" ",10-LEN(B27))&B27,COLUMN()-2,1)} |
| 입력 방법 | 대상 범위를 선택하고 수식을 입력한 뒤 Ctrl+Shift+Enter |
| REPT 함수 | 10자리 미만의 수는 앞에 공백을 채워 10자리로 맞춤 |
| COLUMN 함수 | 각 열의 위치에 맞게 한 자리씩 떼어서 채움 |
자주 묻는 질문 (FAQ)
Q1. 숫자를 자리수별로 여러 셀에 나누려면 어떻게 하나요?
VBA 코딩 없이 배열수식과 문자열 함수를 조합하면 됩니다. 대상 범위를 선택하고 MID, REPT, LEN, COLUMN을 조합한 수식을 입력해 Ctrl+Shift+Enter로 확정합니다.
Q2. REPT 함수는 여기서 어떤 역할을 하나요?
텍스트를 지정한 횟수만큼 반복해 주는 함수입니다. 자리수가 10자리 미만인 수의 앞에 공백을 채워 모두 10자리로 맞춥니다.
Q3. COLUMN 함수는 어떻게 사용되나요?
10자리로 맞춘 문자열에서 각 열의 위치에 해당하는 한 글자씩 MID 함수로 떼어 내는 위치 값을 만들어 줍니다.
마치며
문자열 함수와 배열수식의 조합 방법을 익혀 두면 자리수 분리 외에도 다양한 문자 처리에 활용할 수 있습니다. VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 닷컴 사이트 상단 메뉴에서 [Excel 강의] - [Excel 입문]을 먼저 보시면 이해하기 쉽습니다.