- 최초 작성일: 2000-02-12
- 최종 수정일: 2026-09-29
- 조회수: 35 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 반 편성하기
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
오늘은 신학기에 즈음하여 반편성을 한번 해 볼까요? 웬 뜬금없이 반편성? 하시는 분도 있겠지요.
누차 강조하지만 어떤 일이든 핵심적인 사항은 몇가지 안됩니다. 核이 되는 것 몇가지만 익혀두면 나머지는 그것에서 파생되는 것으로서 창의력과 응용력의 문제라고 할 수가 있는 것입니다.
중고등학교 학창시절을 생각해보면, 신학기가 되면 학생들의 석차를 기준으로 해서 반편성 작업을 하지요.
반 편성하기
핵심 요약
- MOD 함수로 석차를 일정한 주기로 반복시키면 반 배정 패턴을 자동화할 수 있습니다.
- 1~6반까지 증가한 뒤 6~1반으로 감소하는 구간을 IF 조건으로 나누어 계산합니다.
- 반복 주기가 끝나면 같은 규칙이 다시 시작되도록 수식을 구성할 수 있습니다.
참고: 원문의 두 표는 워크시트 화면을 옮긴 것으로, 표 옆 칸에 들어 있던 설명 문장은 각 표 아래 문단으로 옮겼습니다. 그에 맞추어 첫 문장의 "왼쪽의 표"는 "위의 표"로 바꾸었습니다. 둘째 표의 학급 열은 원문에서 수식이 입력된 화면이었으나 이 페이지에는 결과값만 남아 있으며, 아래 ①~③을 이어 붙이면 =IF(MOD(C42,12)=0,1,IF(MOD(C42,12)<=6,MOD(C42,12),13-MOD(C42,12)))가 됩니다.
| 성명 | 석차 | 학급 |
| 갑동이 | 1 | 1 |
| 을동이 | 2 | 2 |
| 병동이 | 3 | 3 |
| 정동이 | 4 | 4 |
| 갑순이 | 5 | 5 |
| 을순이 | 6 | 6 |
| 병순이 | 7 | 6 |
| 정순이 | 8 | 5 |
| 무동이 | 9 | 4 |
| 기동이 | 10 | 3 |
| 경동이 | 11 | 2 |
| 신동이 | 12 | 1 |
| 임동이 | 13 | 1 |
| 계동이 | 14 | 2 |
| 무순이 | 15 | 3 |
| 기순이 | 16 | 4 |
| 경순이 | 17 | 5 |
| 신순이 | 18 | 6 |
| 임순이 | 19 | 6 |
| 계순이 | 20 | 5 |
즉 위의 표와 같이 지그재그 형태로 반을 편성하게 되는데 이것을 어떻게 자동화할 수 있는 방법이 없을까요?
……………………없을까요?………………………
…………………………잠잠…………………………
있습니다!
| 성명 | 석차 | 학급 |
| 갑동이 | 1 | 1 |
| 을동이 | 2 | 2 |
| 병동이 | 3 | 3 |
| 정동이 | 4 | 4 |
| 갑순이 | 5 | 5 |
| 을순이 | 6 | 6 |
| 병순이 | 7 | 6 |
| 정순이 | 8 | 5 |
| 무동이 | 9 | 4 |
| 기동이 | 10 | 3 |
| 경동이 | 11 | 2 |
| 신동이 | 12 | 1 |
| 임동이 | 13 | 1 |
| 계동이 | 14 | 2 |
| 무순이 | 15 | 3 |
| 기순이 | 16 | 4 |
| 경순이 | 17 | 5 |
| 신순이 | 18 | 6 |
| 임순이 | 19 | 6 |
| 계순이 | 20 | 5 |
위의 함수를 이해하시겠는지?
하나씩 풀어볼까요?
① =IF(MOD(C42,12)=0,1,
C42셀을 12로 나눈 나머지가 0이면 1을,
왜 12로 나누느냐고요? 1~6반까지 갔다가 다시 6~1반으로 와야 하니까 12가 되겠지요.
② ,IF(MOD(C42,12)<=6, MOD(C42,12),
C42셀을 12로 나눈 나머지가 6보다 작거나 같으면 그 값을 그대로,
③ ,13-MOD(C42,12)))
그 이외의 경우라면 13-(C42셀을 12로 나눈 나머지)하라.
이렇게 되겠지요.
그런데 ③의 수식에서 왜 13이라는 숫자가 사용되었을까요?
①, ②에 해당되지 않는 경우라면 성적이 7~11등인 사람이지요?
1~6반까지 갔다가 다시 6~1반까지는 총 12명이 배치가 되고 13번째부터 새로운 routine이 시작되기 때문이지요. 말로 풀어놓으니까 더 복잡하게 되어 버렸는데 ③번 수식에 7,8,9,10,11 이라는 값을 하나씩 대입시켜가며 simulation 해 보세요. 금방 답이 나올 것입니다.
오늘은 여기까지…
정리 — 반 편성하기
| 구분 | 내용 |
|---|---|
| 문제 | 석차를 기준으로 1~6반, 6~1반 순서로 지그재그 반 편성 |
| 수식 | =IF(MOD(C42,12)=0,1,IF(MOD(C42,12)<=6,MOD(C42,12),13-MOD(C42,12))) |
| 나머지가 0 | 12로 나눈 나머지가 0이면 1반 |
| 나머지가 1~6 | 나머지를 그대로 반 번호로 사용 |
| 나머지가 7~11 | 13에서 나머지를 뺀 값을 반 번호로 사용 |
| 주기 | 1~6반과 6~1반의 12명이 한 주기 |
자주 묻는 질문 (FAQ)
Q1. 지그재그 반 편성은 어떻게 자동화하나요?
석차를 12로 나눈 나머지를 이용합니다. 나머지가 0이면 1반, 1에서 6이면 나머지 그대로, 그 밖이면 13에서 나머지를 뺀 값을 반으로 지정하는 IF 수식을 사용합니다.
Q2. 왜 12로 나누나요?
1반부터 6반까지 갔다가 다시 6반부터 1반까지 돌아오는 12명이 한 주기이기 때문입니다.
Q3. 수식에 13이 사용되는 이유는 무엇인가요?
13번째부터 새로운 주기가 시작되므로, 나머지가 7에서 11인 경우 13에서 나머지를 빼면 6반부터 2반까지 거꾸로 배정됩니다.
마치며
규칙적으로 반복되는 패턴은 나머지 연산으로 주기를 만들면 수식 하나로 자동화할 수 있습니다. VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 닷컴 사이트 상단 메뉴에서 [Excel 강의] - [Excel 입문]을 먼저 보시면 이해하기 쉽습니다.