SUMPRODUCT 함수 핵심 정리 — 배열 수식 없이 다중 조건 집계하기
월말 실적표에서 “목표 달성 여부”를 YES/NO로만 세면, 조건이 두 개 이상일 때 COUNTIF만으로는 막힙니다. 저는 예전에 =SUMPRODUCT((B2:B100>=100000)*(C2:C100="A")) 한 줄로 매출 10만 이상이면서 등급 A 건수를 세는 법을 재무팀에 알려줬어요. SUMIFS도 되지만, SUMPRODUCT는 배열 곱·합을 한 함수로 처리한다는 점을 이해하면 응용이 넓어집니다.
SUMPRODUCT는 두 이상 범위의 대응 원소끼리 곱한 뒤 합을 구합니다. (조건1)*(조건2)처럼 TRUE/FALSE를 1/0으로 곱하면 COUNTIFS와 같은 집계가 됩니다. 필수 함수 20 허브에서 집계 갈래와 같이 보면 흐름이 잡혀요.
이 글을 따라 하면 얻는 것
– SUMPRODUCT 기본·조건 집계·가중 평균
– SUMIFS·COUNTIFS와 언제 무엇을 쓸지
– #VALUE!·범위 크기 불일치 예방
– TOP N과 연계한 실무 패턴
1. 기본 문법 — 곱 후 합
=SUMPRODUCT(배열1, 배열2, ...)
| A: 수량 | B: 단가 |
|---|---|
| 10 | 500 |
| 5 | 1,200 |
| 8 | 300 |
총액:
=SUMPRODUCT(A2:A4,B2:B4)
→ 10×500 + 5×1,200 + 8×300 = 14,600. =SUM(A2:A4*B2:B4)는 구버전에서 Ctrl+Shift+Enter 배열 수식이 필요했지만, SUMPRODUCT는 Enter만으로 됩니다.
2. 조건 집계 — COUNTIFS 대체
매출(B), 등급(C), 지역(D). 서울·등급 A·매출 5만 이상 건수:
=SUMPRODUCT((D2:D500="서울")*(C2:C500="A")*(B2:B500>=50000))
각 (조건)은 TRUE=1, FALSE=0. 곱하면 모두 참인 행만 1이 됩니다. SUMPRODUCT가 합하면 건수예요.
SUMIFS로도:
=COUNTIFS(D2:D500,"서울",C2:C500,"A",B2:B500,">=50000")
질문이 “조건 합계”면 SUMPRODUCT에 B2:B500을 한 번 더 곱하세요:
=SUMPRODUCT((D2:D500="서울")*(C2:C500="A")*B2:B500)
3. 가중 평균
| A: 점수 | B: 가중치 |
|---|---|
| 85 | 3 |
| 90 | 2 |
| 78 | 5 |
=SUMPRODUCT(A2:A4,B2:B4)/SUM(B2:B4)
→ (85×3+90×2+78×5) / 10 = 82.5. 강의 때 수강생이 AVERAGE만 쓰다 가중치를 빼먹는 실수가 잦아요.
4. SUMPRODUCT vs SUMIFS·COUNTIFS
| 상황 | 추천 |
|---|---|
| 단순 조건 합·개수 | SUMIFS, COUNTIFS (읽기 쉬움) |
OR 조건 (A="X")+(A="Y") |
SUMPRODUCT |
| 가중 평균·배열 곱 | SUMPRODUCT |
| 텍스트 길이·MOD 등 연산 조건 | SUMPRODUCT |
OR 예 — 등급 A 또는 B:
=SUMPRODUCT(((C2:C500="A")+(C2:C500="B"))*(B2:B500>=50000))
+로 OR, *로 AND. 괄호를 빼면 우선순위 때문에 결과가 틀어집니다.
5. TOP N과 연계
전체 매출 2위 금액은 LARGE가 편하지만, “2위 이상 건수”는:
=SUMPRODUCT((B2:B500>=LARGE(B2:B500,2))*1)
조건+순위를 한 시트에서 처리할 때 SUMPRODUCT가 자주 나옵니다.
6. #VALUE!·실수 예방
- 범위 행 수 불일치 — A2:A100과 B2:B99는 #VALUE!
- 텍스트×숫자 — 의도치 않은 열을 곱했는지 확인
- 전체 열
A:A— 데이터 끝 아래 빈 행·오류 값까지 포함 →A2:A5000으로 제한 - 날짜 조건 —
"2026-01-01"텍스트 vs DATE(2026,1,1) 형식 통일 - 논리값 곱 —
(B2:B100>=0)*1처럼 명시하면 합계 열에 TRUE/FALSE가 안 섞임
7. 365 동적 배열과
365에서 =FILTER(...)가 spill로 퍼지면, SUMPRODUCT 범위를 spill 결과에 맞출 수 있습니다. spill 옆에 값이 있으면 #SPILL! — 범위 설계 전에 spill 영역을 비우세요.
8. FAQ
Q. SUMPRODUCT가 느린가요?
전체 열·수십만 행이면 SUMIFS가 낫습니다. 범위를 B2:B5000처럼 제한하세요.
Q. AND·OR 함수와 차이?
AND/OR는 단일 TRUE/FALSE. SUMPRODUCT는 행마다 조건을 곱·합해 집계합니다.
Q. SUMPRODUCT에 문자열 조건?
="서울"처럼 따옴표. 와일드카드는 SUMIFS 쪽이 낫습니다.
9. 연습 — 스스로 확인
데이터: B=매출, C=등급(A/B/C), D=지역.
- 서울 매출 합계 (SUMPRODUCT)
- 등급 A 또는 B이면서 매출 3만 이상 건수
- 가중 평균 — E열 가중치 사용
정답 1: =SUMPRODUCT((D2:D500="서울")*B2:B500). 2번은 OR에 +를 쓰세요. 팀 README에 “다중 AND는 *, OR는 +” 한 줄만 박아도 실수가 줄어요.
참고: SUMPRODUCT · SUMIFS 글.
실무 메모 1
다중 AND는 *, OR는 + — README 한 줄 규칙. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 2
전체 열 대신 B2:B5000 범위 제한. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 3
가중 평균은 SUMPRODUCT/SUM 분모 확인. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 4
다중 AND는 *, OR는 + — README 한 줄 규칙. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 5
전체 열 대신 B2:B5000 범위 제한. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 6
가중 평균은 SUMPRODUCT/SUM 분모 확인. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 7
다중 AND는 *, OR는 + — README 한 줄 규칙. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 8
전체 열 대신 B2:B5000 범위 제한. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 9
가중 평균은 SUMPRODUCT/SUM 분모 확인. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 10
다중 AND는 *, OR는 + — README 한 줄 규칙. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 11
전체 열 대신 B2:B5000 범위 제한. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 12
가중 평균은 SUMPRODUCT/SUM 분모 확인. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 13
다중 AND는 *, OR는 + — README 한 줄 규칙. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 14
전체 열 대신 B2:B5000 범위 제한. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 15
가중 평균은 SUMPRODUCT/SUM 분모 확인. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 16
다중 AND는 *, OR는 + — README 한 줄 규칙. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 17
전체 열 대신 B2:B5000 범위 제한. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 18
가중 평균은 SUMPRODUCT/SUM 분모 확인. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 19
다중 AND는 *, OR는 + — README 한 줄 규칙. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 20
전체 열 대신 B2:B5000 범위 제한. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 21
가중 평균은 SUMPRODUCT/SUM 분모 확인. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 22
다중 AND는 *, OR는 + — README 한 줄 규칙. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 23
전체 열 대신 B2:B5000 범위 제한. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 24
가중 평균은 SUMPRODUCT/SUM 분모 확인. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 25
다중 AND는 *, OR는 + — README 한 줄 규칙. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 26
전체 열 대신 B2:B5000 범위 제한. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 27
가중 평균은 SUMPRODUCT/SUM 분모 확인. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.
실무 메모 28
다중 AND는 *, OR는 + — README 한 줄 규칙. 분기말 보고서를 열면 같은 실수가 반복됩니다. 김대리 파일에서도 범위를 B2:B5000으로 줄이니 응답이 빨라졌어요. 팀 README에 기준을 한 줄로 박아 두세요.