- 최초 작성일: 1999-11-07
- 최종 수정일: 2026-09-29
- 조회수: 22 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 부분합(SubTotal) 활용하기
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
이번에는 데이터를 다루는 또다른 기능인 부분합(SubTotal)에 대해 알아보도록 하겠습니다.
아래와 같은 자료가 있다고 할 때,
부분합(SubTotal) 활용하기
핵심 요약
- 데이터를 기준 필드로 정렬한 뒤 데이터-부분합 기능을 사용하면 고객별 수량과 금액 등을 자동으로 요약할 수 있습니다.
- 부분합은 합계뿐 아니라 개수, 평균, 최대값, 최소값 등 다양한 계산 방법을 지원합니다.
- 새로운 값으로 대치 옵션을 해제하면서 부분합을 반복 실행하면 합계·평균·최대값처럼 여러 종류의 부분합을 함께 표시할 수 있습니다.
| 고객명 | 출지번호 | 제품명 | 단가 | 수량 | 합계 |
| 홍길동 | 100 | 건성스킨 | 22,000 | 3 | 66,000 |
| 홍길동 | 100 | 복합스킨 | 22,000 | 3 | 66,000 |
| 홍길동 | 100 | 건성로션 | 26,000 | 2 | 52,000 |
| 홍길동 | 100 | 복합로션 | 26,000 | 2 | 52,000 |
| 홍길동 | 101 | 파워리프팅 | 60,000 | 5 | 300,000 |
| 홍길동 | 101 | 레티놀2500 | 60,000 | 2 | 120,000 |
| 이순신 | 101 | 건성스킨 | 22,000 | 1 | 22,000 |
| 이순신 | 101 | 복합로션 | 26,000 | 3 | 78,000 |
| 이순신 | 102 | 지성스킨 | 22,000 | 2 | 44,000 |
| 이순신 | 102 | 건성2종 | 48,000 | 2 | 96,000 |
| 김유신 | 102 | 파워리프팅 | 60,000 | 3 | 180,000 |
| 김유신 | 102 | 리퀴드파운21호 | 26,000 | 2 | 52,000 |
| 김유신 | 103 | 리퀴드파운23호 | 26,000 | 2 | 52,000 |
| 김유신 | 103 | 비타젠화이트 | 60,000 | 3 | 180,000 |
"홍길동"이가 물건을 구매할 때 하나의 제품을 구매하는 것이 아니라 위에서 처럼 여러 개의 제품을 구매합니다. 즉 하나의 출지번호가 발생하게 되면 그 안에는 여러 개의 물품이 함께 포함되어 있는 것이지요.
이 때 고객명별로 구매수량, 구매금액 합계를 요약해서 보고싶을 경우가 있을 것입니다.
이럴 경우에는
(1) 소스테이블(원본 자료) 내의 아무 셀이나 선택한 다음 "데이터-부분합" 메뉴를 선택합니다.
(2) 그러면 대화상자가 나타나는데 여기서 합계를 구하고자 하는 항목(정식용어로는 필드명)을 체크해 주면 고객명별로 제품의 총개수, 총합계 등이 나타납니다 아래와 같이.
참고: 아래 표는 합계, 평균, 최대값 부분합을 모두 적용한 결과입니다. (2)의 합계 부분합만 적용하면 각 고객 아래에 합계 행만 표시됩니다.
| 고객명 | 출지번호 | 제품명 | 단가 | 수량 | 합계 |
| 홍길동 | 100 | 건성스킨 | 22,000 | 3 | 66,000 |
| 홍길동 | 100 | 복합스킨 | 22,000 | 3 | 66,000 |
| 홍길동 | 100 | 건성로션 | 26,000 | 2 | 52,000 |
| 홍길동 | 100 | 복합로션 | 26,000 | 2 | 52,000 |
| 홍길동 | 101 | 파워리프팅 | 60,000 | 5 | 300,000 |
| 홍길동 | 101 | 레티놀2500 | 60,000 | 2 | 120,000 |
| 홍길동 최대값 | 5 | 300,000 | |||
| 홍길동 평균 | 2.8333333333 | 109333.3333333333 | |||
| 홍길동 합계 | 17 | 656,000 | |||
| 이순신 | 101 | 건성스킨 | 22,000 | 1 | 22,000 |
| 이순신 | 101 | 복합로션 | 26,000 | 3 | 78,000 |
| 이순신 | 102 | 지성스킨 | 22,000 | 2 | 44,000 |
| 이순신 | 102 | 건성2종 | 48,000 | 2 | 96,000 |
| 이순신 최대값 | 3 | 96,000 | |||
| 이순신 평균 | 2 | 60,000 | |||
| 이순신 합계 | 8 | 240,000 | |||
| 김유신 | 102 | 파워리프팅 | 60,000 | 3 | 180,000 |
| 김유신 | 102 | 리퀴드파운21호 | 26,000 | 2 | 52,000 |
| 김유신 | 103 | 리퀴드파운23호 | 26,000 | 2 | 52,000 |
| 김유신 | 103 | 비타젠화이트 | 60,000 | 3 | 180,000 |
| 김유신 최대값 | 3 | 180,000 | |||
| 김유신 평균 | 2.5 | 116,000 | |||
| 김유신 합계 | 10 | 464,000 | |||
| 전체 최대값 | 5 | 300,000 | |||
| 전체 평균 | 2.5 | 97142.8571428571 | |||
| 총 합계 | 35 | 1,360,000 |
(3) 부분합을 해제하고자 할 때에는 "데이터-부분합-모두 삭제"를 선택해 주면 됩니다.
부분합을 사용할 때 주의사항! 부분합 작업을 할 때에는 가급적 해당필드를 SORTING(정렬)해 준 후 하시기 바랍니다. 그래야 처리속도가 빨라집니다.
그리고 부분합 계산시 꼭 합계(SUM)만 가능한 것이 아니고 개수, 평균, 최대값, 최소값 등도 가능합니다. 또한 부분합이 된 상태에서 새로운 값을 추가시키거나 하면 부분합의 값과 총합계 값도 자동으로 연동되어 변합니다.
그렇다면 아래 그림과 같이 고객별로 최대값의 부분합, 평균의 부분합, 합계의 부분합 등 3개의 부분합을 함께 나타내려면 어떻게 해야 할까요? 1분 동안 생각해 본 후 답을 보세요.
이럴 때에는 고객명을 기준으로 "합계" 부분을 지정해서 한번 부분합 작업을 해 준 상태에서 다시 한번 "평균"부분을 지정한 후 "새로운 값으로 대치" 부분의 왼쪽에 있는 체크 표시를 없앤 후 부분합을 해 주고, 또다시 "최대값"을 지정한 후 부분합을 한번 더 해 주면 됩니다.
오늘은 여기까지…
정리 — 부분합(SubTotal) 활용하기
| 구분 | 내용 |
|---|---|
| 목적 | 고객명별 구매수량과 구매금액을 요약 |
| 실행 | 원본 표의 아무 셀이나 선택하고 데이터 - 부분합을 실행한 뒤 합계를 구할 필드를 체크 |
| 해제 | 데이터 - 부분합 - 모두 삭제 |
| 주의 | 부분합 전에 해당 필드를 정렬하면 처리 속도가 빨라짐 |
| 계산 방법 | 합계뿐 아니라 개수, 평균, 최대값, 최소값 등도 가능 |
| 여러 부분합 | 합계, 평균, 최대값을 차례로 실행하되 새로운 값으로 대치의 체크를 해제 |
| 예제 결과 | 홍길동 수량 17 합계 656,000 / 이순신 수량 8 합계 240,000 / 김유신 수량 10 합계 464,000 / 총합계 수량 35 합계 1,360,000 |
자주 묻는 질문 (FAQ)
Q1. 고객별 합계를 요약하려면 어떻게 하나요?
원본 표 안의 아무 셀이나 선택하고 데이터 - 부분합을 실행한 뒤 합계를 구할 항목을 체크하면 고객명별로 총개수와 총합계 등이 나타납니다. 작업 전에 해당 필드를 정렬해 두면 처리 속도가 빨라집니다.
Q2. 합계, 평균, 최대값 부분합을 함께 표시하려면 어떻게 하나요?
고객명을 기준으로 합계 부분합을 실행한 상태에서 평균을 지정하고, 새로운 값으로 대치의 체크를 해제한 뒤 다시 실행합니다. 같은 방법으로 최대값도 한 번 더 실행합니다.
Q3. 부분합을 해제하려면 어떻게 하나요?
데이터 - 부분합 - 모두 삭제를 선택합니다.
마치며
고객별이나 지점별 요약이 필요할 때는 정렬 후 부분합을 실행해 보시기 바랍니다. VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 닷컴 사이트 상단 메뉴에서 [Excel 강의] - [Excel 입문]을 먼저 보시면 이해하기 쉽습니다.