• 최초 작성일: 2001-01-04
  • 최종 수정일: 2026-09-29
  • 조회수: 27 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: SubTotal 함수에 대하여

들어가기 전에

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

보통 때에는 상관없지만 필터링이 된 데이터에 대해 합계나 평균 또는 카운팅을 해야 할 경우, 숨겨진 영역까지 모두 작업대상으로 하기 때문에 곤란할 때가 많습니다. 아래의 표를 보세요.

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

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

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


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

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

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

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

SubTotal 함수에 대하여

핵심 요약

  • 일반 SUM·AVERAGE·COUNTA 함수는 필터로 숨겨진 행까지 계산하지만 SUBTOTAL은 필터 결과에 맞춰 집계할 수 있습니다.
  • SUBTOTAL의 첫 번째 인수는 계산 종류를 지정하며 1~11 값으로 평균, 개수, 최대·최소, 합계, 분산 등을 선택합니다.
  • 필터링된 목록의 건수·판매합계·평균처럼 화면에 남은 데이터만 집계해야 할 때 SUBTOTAL을 사용하면 편리합니다.

<Source>

월 팀장명 영업사원 브랜드 수량 단가 판매액
1월 김재박 박재홍 아이오페 12 17500 =F15*G15
1월 김재박 박찬호 아이오페 15 17500 =F16*G16
1월 김재박 이강철 아이오페 21 17500 =F17*G17
1월 차범근 이강철 마몽드 59 7400 =F18*G18
1월 차범근 박재홍 마몽드 63 7400 =F19*G19
1월 차범근 박재홍 라네즈 52 9100 =F20*G20
1월 이순신 박재홍 미로 99 6600 =F21*G21
1월 이순신 이강철 미로 108 6600 =F22*G22
1월 이순신 박찬호 미로 108 6600 =F23*G23
1월 이순신 선동렬 미로 109 6600 =F24*G24
1월 김재박 선동렬 마몽드 106 7400 =F25*G25
1월 이순신 선동렬 아이오페 54 17500 =F26*G26
1월 차범근 박찬호 마몽드 160 7400 =F27*G27
1월 김재박 선동렬 라네즈 188 9100 =F28*G28
1월 이순신 이강철 라네즈 230 9100 =F29*G29
1월 차범근 박찬호 라네즈 343 9100 =F30*G30
2월 김재박 박찬호 아이오페 12 17500 =F31*G31
2월 김재박 이강철 아이오페 17 17500 =F32*G32
2월 김재박 박재홍 미로 63 6600 =F33*G33
2월 차범근 박재홍 아이오페 29 17500 =F34*G34
2월 차범근 박찬호 미로 94 6600 =F35*G35
2월 김재박 선동렬 미로 95 6600 =F36*G36
2월 김재박 이강철 미로 99 6600 =F37*G37
2월 김재박 박찬호 마몽드 101 7400 =F38*G38
2월 김재박 선동렬 아이오페 43 17500 =F39*G39
2월 이순신 이강철 마몽드 117 7400 =F40*G40
2월 이순신 선동렬 마몽드 131 7400 =F41*G41
2월 이순신 선동렬 라네즈 130 9100 =F42*G42
2월 차범근 이강철 라네즈 147 9100 =F43*G43
2월 차범근 박재홍 마몽드 203 7400 =F44*G44
2월 김재박 박재홍 라네즈 170 9100 =F45*G45
2월 차범근 박찬호 라네즈 506 9100 =F46*G46
3월 김재박 박재홍 미로 30 6600 =F47*G47
3월 차범근 선동렬 미로 72 6600 =F48*G48
3월 차범근 박찬호 미로 76 6600 =F49*G49
3월 차범근 이강철 아이오페 31 17500 =F50*G50
3월 김재박 박찬호 아이오페 37 17500 =F51*G51
3월 이순신 박재홍 아이오페 38 17500 =F52*G52
3월 이순신 선동렬 아이오페 50 17500 =F53*G53
3월 이순신 이강철 미로 140 6600 =F54*G54
3월 차범근 이강철 마몽드 168 7400 =F55*G55
3월 김재박 박재홍 마몽드 218 7400 =F56*G56
3월 김재박 박재홍 라네즈 200 9100 =F57*G57
3월 김재박 선동렬 마몽드 248 7400 =F58*G58
3월 이순신 박찬호 마몽드 256 7400 =F59*G59
3월 이순신 이강철 라네즈 261 9100 =F60*G60
3월 차범근 선동렬 라네즈 320 9100 =F61*G61
3월 차범근 박찬호 라네즈 507 9100 =F62*G62
4월 김재박 박재홍 미로 136 6600 =F63*G63
4월 차범근 박찬호 미로 63 6600 =F64*G64
4월 차범근 이강철 미로 75 6600 =F65*G65
4월 차범근 선동렬 미로 87 6600 =F66*G66
4월 김재박 이강철 마몽드 104 7400 =F67*G67
4월 김재박 박찬호 마몽드 106 7400 =F68*G68
4월 김재박 박재홍 아이오페 48 17500 =F69*G69
4월 이순신 이강철 아이오페 50 17500 =F70*G70
4월 이순신 박찬호 아이오페 50 17500 =F71*G71
4월 이순신 선동렬 아이오페 59 17500 =F72*G72
4월 차범근 박재홍 마몽드 206 7400 =F73*G73
4월 김재박 선동렬 마몽드 245 7400 =F74*G74
4월 이순신 박재홍 라네즈 252 9100 =F75*G75
4월 차범근 이강철 라네즈 419 9100 =F76*G76
4월 차범근 선동렬 라네즈 420 9100 =F77*G77
4월 차범근 박찬호 라네즈 518 9100 =F78*G78

이 표를 가지고 "팀장명이 김재박"인 데이터만 필터링하면 또 아래와 같이 될 것입니다.

참고: 아래 표는 필터로 숨겨진 행까지 모두 표시되어 있어 실제 필터링된 화면과 다릅니다. 실제로는 팀장명이 김재박인 행만 화면에 남고 나머지 행은 숨겨지며, 일반함수는 숨겨진 행까지 계산하고 SUBTOTAL은 화면에 남은 행만 계산합니다. 또한 SUBTOTAL의 1~11은 수동으로 숨긴 행을 포함하고, 101~111은 수동으로 숨긴 행도 제외합니다.

월 팀장명 영업사원 브랜드 수량 단가 판매액
1월 김재박 박재홍 아이오페 12 17500 =F84*G84
1월 김재박 박찬호 아이오페 15 17500 =F85*G85
1월 김재박 이강철 아이오페 21 17500 =F86*G86
1월 차범근 이강철 마몽드 59 7400 =F87*G87
1월 차범근 박재홍 마몽드 63 7400 =F88*G88
1월 차범근 박재홍 라네즈 52 9100 =F89*G89
1월 이순신 박재홍 미로 99 6600 =F90*G90
1월 이순신 이강철 미로 108 6600 =F91*G91
1월 이순신 박찬호 미로 108 6600 =F92*G92
1월 이순신 선동렬 미로 109 6600 =F93*G93
1월 김재박 선동렬 마몽드 106 7400 =F94*G94
1월 이순신 선동렬 아이오페 54 17500 =F95*G95
1월 차범근 박찬호 마몽드 160 7400 =F96*G96
1월 김재박 선동렬 라네즈 188 9100 =F97*G97
1월 이순신 이강철 라네즈 230 9100 =F98*G98
1월 차범근 박찬호 라네즈 343 9100 =F99*G99
2월 김재박 박찬호 아이오페 12 17500 =F100*G100
2월 김재박 이강철 아이오페 17 17500 =F101*G101
2월 김재박 박재홍 미로 63 6600 =F102*G102
2월 차범근 박재홍 아이오페 29 17500 =F103*G103
2월 차범근 박찬호 미로 94 6600 =F104*G104
2월 김재박 선동렬 미로 95 6600 =F105*G105
2월 김재박 이강철 미로 99 6600 =F106*G106
2월 김재박 박찬호 마몽드 101 7400 =F107*G107
2월 김재박 선동렬 아이오페 43 17500 =F108*G108
2월 이순신 이강철 마몽드 117 7400 =F109*G109
2월 이순신 선동렬 마몽드 131 7400 =F110*G110
2월 이순신 선동렬 라네즈 130 9100 =F111*G111
2월 차범근 이강철 라네즈 147 9100 =F112*G112
2월 차범근 박재홍 마몽드 203 7400 =F113*G113
2월 김재박 박재홍 라네즈 170 9100 =F114*G114
2월 차범근 박찬호 라네즈 506 9100 =F115*G115
3월 김재박 박재홍 미로 30 6600 =F116*G116
3월 차범근 선동렬 미로 72 6600 =F117*G117
3월 차범근 박찬호 미로 76 6600 =F118*G118
3월 차범근 이강철 아이오페 31 17500 =F119*G119
3월 김재박 박찬호 아이오페 37 17500 =F120*G120
3월 이순신 박재홍 아이오페 38 17500 =F121*G121
3월 이순신 선동렬 아이오페 50 17500 =F122*G122
3월 이순신 이강철 미로 140 6600 =F123*G123
3월 차범근 이강철 마몽드 168 7400 =F124*G124
3월 김재박 박재홍 마몽드 218 7400 =F125*G125
3월 김재박 박재홍 라네즈 200 9100 =F126*G126
3월 김재박 선동렬 마몽드 248 7400 =F127*G127
3월 이순신 박찬호 마몽드 256 7400 =F128*G128
3월 이순신 이강철 라네즈 261 9100 =F129*G129
3월 차범근 선동렬 라네즈 320 9100 =F130*G130
3월 차범근 박찬호 라네즈 507 9100 =F131*G131
4월 김재박 박재홍 미로 136 6600 =F132*G132
4월 차범근 박찬호 미로 63 6600 =F133*G133
4월 차범근 이강철 미로 75 6600 =F134*G134
4월 차범근 선동렬 미로 87 6600 =F135*G135
4월 김재박 이강철 마몽드 104 7400 =F136*G136
4월 김재박 박찬호 마몽드 106 7400 =F137*G137
4월 김재박 박재홍 아이오페 48 17500 =F138*G138
4월 이순신 이강철 아이오페 50 17500 =F139*G139
4월 이순신 박찬호 아이오페 50 17500 =F140*G140
4월 이순신 선동렬 아이오페 59 17500 =F141*G141
4월 차범근 박재홍 마몽드 206 7400 =F142*G142
4월 김재박 선동렬 마몽드 245 7400 =F143*G143
4월 이순신 박재홍 라네즈 252 9100 =F144*G144
4월 차범근 이강철 라네즈 419 9100 =F145*G145
4월 차범근 선동렬 라네즈 420 9100 =F146*G146
4월 차범근 박찬호 라네즈 518 9100 =F147*G147
일반함수 SubTotal 함수
件數 =COUNTA(F84:F143) =SUBTOTAL(3,H84:H143)
판매합계 =SUM(H84:H143) =SUBTOTAL(9,H84:H143)
평균판매 =AVERAGE(H84:H143) =SUBTOTAL(1,H84:H143)

필터링된 데이터를 가지고 발생건수, 판매합계, 평균합계를 구해야 할 경우가 있을 것입니다. 이 때 일반적인 함수(CountA, Sum, Average)를 그냥 적용하게 되면 위의 "일반함수"의 예에서와 같이 제대로 계산을 할 수 가 없습니다.

이럴 때에는 SubTotal() 함수를 사용하면 간단하게 해결하실 수 있습니다.

사용 형식 subtotal(숫자, 영역1, 영역2, 영역3,…)

"숫자"값은 11가지 값 중 하나를 가질 수 있으며 세부 계산방법은 아래와 같습니다.

숫자 계산
1 Average 주어진 영역의 평균값을 구합니다.
2 Count 숫자를 포함한 셀과 숫자의 개수를 구합니다.
3 CountA 공백이 아닌 셀과 값의 개수를 계산합니다.
4 Max 최대값을 추출합니다.
5 Min 최소값을 추출합니다.
6 Product 인수를 모두 곱한 결과를 표시합니다.
7 Stdev 표본의 표준편차를 예측합니다.
8 Stdevp 모집단 전체의 표준편차를 구합니다.
9 Sum 영역의 합계를 구합니다.
10 Var 표본의 분산을 계산합니다.
11 Varp 모집단 전체의 분산을 구합니다.

그리고 "영역"은 계산을 하려는 범위나 참조영역을 의미하며 최대 29개까지 가능합니다.

오늘은 여기까지…

엑셀을 처음 접하는 분들, 엑셀을 몇 년간 사용해 왔으나 엑셀의 체계를 다잡고자 하는 분들, 그리고 '이제 엑셀에 대해서는 나를 당할자가 없도다'라고 생각하시는 분들도 참고하시기 바랍니다.

정리 — SubTotal 함수에 대하여

구분내용
문제SUM, AVERAGE, COUNTA 같은 일반 함수는 필터로 숨겨진 행까지 계산
해결SUBTOTAL 함수 사용 (형식: SUBTOTAL(숫자, 영역1, 영역2, ...), 영역은 최대 29개)
건수=SUBTOTAL(3,H84:H143)
판매합계=SUBTOTAL(9,H84:H143)
평균판매=SUBTOTAL(1,H84:H143)
숫자 값1 평균, 2 숫자 개수, 3 값 개수, 4 최대, 5 최소, 6 곱, 7 표본 표준편차, 8 모집단 표준편차, 9 합계, 10 표본 분산, 11 모집단 분산

자주 묻는 질문 (FAQ)

Q1. 필터링한 데이터의 합계나 평균은 왜 일반 함수로 안 되나요?

SUM, AVERAGE, COUNTA 같은 일반 함수는 필터로 숨겨진 행까지 모두 계산 대상으로 삼기 때문입니다.

Q2. 필터링된 데이터만 계산하려면 어떻게 하나요?

SUBTOTAL 함수를 사용합니다. 첫 번째 인수로 계산 종류를 나타내는 숫자를 지정하고 이어서 계산할 영역을 지정합니다.

Q3. SUBTOTAL의 숫자 인수는 무엇을 뜻하나요?

1부터 11까지의 값으로 1은 평균, 3은 값의 개수, 9는 합계처럼 계산 방법을 선택합니다.

마치며

필터링한 목록의 건수와 합계와 평균은 SUBTOTAL 함수로 간단히 구할 수 있으니 확실히 익혀 두시기 바랍니다. VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 닷컴 사이트 상단 메뉴에서 [Excel 강의] - [Excel 입문]을 먼저 보시면 이해하기 쉽습니다.