Excel 教學:製作課程各場次名額表,核對報名、剩餘及超額人數
엑셀 교육 회차별 정원표 만들기: 접수 인원과 잔여·초과 확인하기
這份 Excel 教學示範按課程場次建立名額表,以公式計算報名、剩餘及超額人數。示例中 S01、S02、S03 名額為 5、2、1 人,報名為 4、3、1 人;總名額和報名合計均為 8 人,但 S02 超額 1 人。文章亦示範如何更新取消及新增申請,並註明資料屬合成例子,並非在 Excel app 執行的案例。
교육 신청을 세 회차로 받았다면 전체 인원보다 회차별 정원부터 비교해야 합니다. 정원 합계와 접수 합계가 모두 8명이어도, 한 회차는 자리가 남고 다른 회차는 넘칠 수 있습니다.
이번 표는 회차별 접수 인원·잔여석·초과 인원을 함께 보여 줍니다. 취소한 신청은 접수 인원에서 빼고, 입력이 바뀌면 같은 수식으로 다시 계산합니다. 입력 예제와 수식을 본문에서 복사해 완성할 수 있습니다.
이 글은 AI가 작성하고 DEV 형식으로 재구성한 합성 예제입니다. 실제 교육이나 개인정보를 사용하지 않았으며 계산과 조건 분기를 Python으로 검산했습니다. Excel 앱에서 실행한 사례나 실제 신청 처리 결과는 아닙니다.
1. 신청 한 건의 기준을 정하고 입력하기
한 행은 한 사람의 한 회차 신청이며 현재 상태는 ‘접수’ 또는 ‘취소’입니다. 예제의 열 행은 서로 다른 가상 사람의 신청입니다. 실제 자료는 같은 사람의 중복 신청을 원래 접수자료에서 확인한 뒤 옮기세요. 신청ID가 서로 다르다는 사실만으로 사람이 다르다고 판단할 수는 없습니다.
새 시트의 A~C열을 입력 공간으로 씁니다. 아래 세 블록을 각각 A1, B1, C1부터 한 열씩 넣으세요. 셀 편집 상태를 끝낸 뒤 붙여넣고, 한 줄이 한 셀에 들어가 각 열이 11행인지 확인합니다. 한 셀에 몰리면 취소하고 셀별로 직접 입력합니다.
A1부터 입력
신청ID
R01
R02
R03
R04
R05
R06
R07
R08
R09
R10
B1부터 입력
회차
S01
S01
S01
S01
S02
S02
S02
S03
S01
S02
C1부터 입력
상태
접수
접수
접수
접수
접수
접수
접수
접수
취소
취소
각 블록의 ‘A1부터 입력’ 같은 위치 안내는 복사에서 빼고 머리글부터 넣습니다. R01은 A2, R07은 A8, R10은 A11에 있어야 합니다. A12:C101은 새 신청을 위한 빈 공간으로 둡니다.
2. 회차별 정원과 네 가지 계산 열 만들기
D열은 비워 두고 E~J열에 요약표를 만듭니다. 다음 이름·값을 표시한 셀에 입력하세요. 정원은 텍스트가 아닌 숫자 5, 2, 1입니다. S01~S03은 서로 다른 회차이며 각 회차의 정원을 따로 정한 합성 설정입니다.
E1: 회차 / F1: 정원
G1: 접수 인원 / H1: 잔여석
I1: 초과 인원 / J1: 표시
E2: S01 / F2: 5
E3: S02 / F3: 2
E4: S03 / F4: 1
아래 수식은 셀 주소와 설명을 빼고 =부터 끝까지 해당 셀 하나에 넣습니다. G2~J2를 모두 입력한 뒤 G2:J2를 G4:J4까지 아래로 채웁니다.
G2에 입력
=IF(E2="","",COUNTIFS($B$2:$B$101,E2,$C$2:$C$101,"접수"))
H2에 입력
=IF(E2="","",MAX(F2-G2,0))
I2에 입력
=IF(E2="","",MAX(G2-F2,0))
J2에 입력
=IF(E2="","",IF(I2>0,"초과 확인",IF(H2=0,"정원 도달","여유 있음")))
COUNTIFS는 B열의 회차와 C열의 ‘접수’를 동시에 만족하는 행을 셉니다. 두 범위는 모두 2~101행이며 $가 붙어 아래로 복사해도 고정됩니다. E2는 E3, E4로 바뀌어 각 회차를 가리킵니다.
잔여석은 정원−접수 인원, 초과 인원은 접수 인원−정원입니다. 각각 MAX로 0과 비교해 음수는 0으로 표시합니다. 잔여석만 보면 초과한 회차와 딱 찬 회차가 모두 0이므로 초과 열을 함께 둡니다.
3. 완성 결과는 회차별로 읽기
[S01]
정원 5명 / 접수 4명
잔여 1석 / 초과 0명
표시: 여유 있음
[S02]
정원 2명 / 접수 3명
잔여 0석 / 초과 1명
표시: 초과 확인
[S03]
정원 1명 / 접수 1명
잔여 0석 / 초과 0명
표시: 정원 도달
열 행 중 접수는 8건, 취소는 2건입니다. 예제에서는 접수 8건이 서로 다른 8명의 신청입니다. 전체 정원도 5+2+1=8명이지만, S01의 잔여 한 자리로 S02의 초과 한 명을 없앨 수는 없습니다. 회차 이동에는 신청자의 의사와 운영 확인이 따로 필요합니다.
표시가 ‘여유 있음’이어도 자리가 예약되거나 신청이 승인된 것은 아닙니다. ‘초과 확인’은 정원보다 현재 접수 인원이 많다는 뜻이며, 누구를 제외하거나 대기자로 정할지는 이 표가 판단하지 않습니다.
4. 취소와 새 신청을 현재 행에 반영하기
먼저 예제 파일의 복사본에서 R07이 취소했다고 가정합니다. C8의 ‘접수’를 ‘취소’로 바꾸세요. S02는 접수 2명·잔여 0석·초과 0명·정원 도달이 됩니다. 전체 접수는 7명이고 S01·S03의 결과는 그대로입니다.
이어서 새 신청 R11을 받았다고 가정하고 A12에 R11, B12에 S01, C12에 접수를 넣습니다. S01도 접수 5명·잔여 0석·초과 0명·정원 도달이 됩니다. 이제 세 회차 모두 정원에 도달하고 접수 합계는 다시 8명입니다.
현재 상태표이므로 R07의 취소 행을 새로 추가하지 않습니다. 그렇게 하면 기존 ‘접수’ 행이 남아 계속 집계됩니다. 변경 전 파일은 기준 시점과 함께 보관하고 취소·정정 근거는 별도 메모에 남긴 뒤 해당 행을 수정하세요.
5. 빈 양식으로 다시 쓰기
[재사용 순서]
1. 이전 파일을 보관하고 작업용 복사본 만들기
2. A2:C101의 입력 내용만 지우기
3. E2:F4를 새 회차와 확정 정원으로 교체하기
4. G2:J4 수식은 남기기
5. 확인한 현재 신청을 한 행씩 입력하기
6. 회차별 접수·잔여·초과를 원자료와 대조하기
[반영 기록 — 복사용]
교육명 / 집계 기준 시점:
원래 접수자료 위치:
회차코드와 정원 확인 근거:
중복·누락을 확인한 범위:
상태 변경 ID / 내용 / 근거:
초과 회차 / 추가 확인할 일:
기존 회차와 정원을 두고 신청만 비우면 접수는 모두 0명, 잔여석은 5·2·1석입니다. 새 회차·정원이 아직 미정이면 E2:F4도 함께 비워 두세요. E열이 비면 G~J는 빈 표시가 됩니다. 회차코드만 넣고 정원을 비워 둔 상태로 결과를 읽지 않습니다.
집계 전 신청ID 중복, 같은 사람의 중복 신청, 빠진 값, 미등록 회차, 상태 오기를 원자료와 대조합니다. 회차코드는 S01처럼 통일하고 공백·*·?·~를 넣지 않습니다. 정원은 확정된 양의 정수로 입력하며, 안 쓰는 신청 행은 A~C를 모두 비웁니다. 이 확인은 수동 전제이고 수식에 자동 검사가 설치된 것은 아닙니다.
102행부터 입력할 때는 모든 G열 수식의 B·C 조건 범위를 같은 끝 행까지 함께 늘립니다. 회차가 늘면 E·F에 새 회차·정원을 넣고 G~J 수식도 새 요약 행까지 복사합니다. 수식은 영문 함수명과 쉼표 기준이며, 환경이 세미콜론 구분자를 쓰면 맞춰 입력합니다.
來源:DEV Community · dev.to