엑셀 SUMPRODUCT 함수 사용법 — 곱한 값의 합계와 가중평균 계산

최종 업데이트 2026-08-17

SUMPRODUCT는 이름 그대로 '곱해서(PRODUCT) 더하는(SUM)' 함수입니다. 예를 들어 상품별 수량과 단가가 각각 다른 열에 있을 때, 수량×단가를 한 줄씩 계산해서 더한 '총 매출액'을 한 번에 구할 수 있습니다. 별도의 보조열 없이 배열 두 개를 통째로 곱해서 합산한다는 점이 가장 큰 장점입니다.

실무에서는 매출 집계, 가중평균 점수 계산, 여러 조건을 동시에 만족하는 행의 개수 세기 등에 자주 쓰입니다. SUMIFS나 COUNTIFS로는 처리하기 어려운 '조건이 OR로 얽힌 경우'나 '곱셈이 필요한 집계'에서 특히 유용합니다.

기본 구조

=SUMPRODUCT(배열1, 배열2, ...)

배열1과 배열2는 크기(행 수)가 반드시 같아야 합니다. 함수는 같은 위치의 값끼리 곱한 뒤, 그 결과를 전부 더합니다. 배열을 하나만 넣으면 단순 합계(SUM)와 같은 결과가 나옵니다.

실무 예시 1 — 수량×단가로 총 매출 구하기

B열에 수량, C열에 단가가 100행까지 있다고 가정합니다. 각 행마다 수량×단가를 계산한 뒤 전부 더한 값을 구하려면 보조열을 만들지 않고도 다음 수식 하나로 끝낼 수 있습니다.

=SUMPRODUCT(B2:B101, C2:C101)

만약 보조열을 만든다면 D열에 =B2*C2를 100번 채운 뒤 SUM으로 더해야 하지만, SUMPRODUCT는 이 과정을 한 줄로 대체합니다. 표가 자주 바뀌는 보고서일수록 수식 관리가 훨씬 간편해집니다.

실무 예시 2 — 가중평균 계산하기

과목별 점수(B열)와 학점 가중치(C열)가 있을 때, 단순 평균이 아니라 가중치를 반영한 평균 점수를 구하려면 SUMPRODUCT로 가중합을 구한 뒤 가중치의 합으로 나눕니다.

=SUMPRODUCT(B2:B6, C2:C6) / SUM(C2:C6)

예를 들어 국어 90점(가중치 3), 영어 80점(가중치 2), 수학 70점(가중치 4)이라면 (90×3+80×2+70×4)를 전체 가중치 합(9)으로 나눈 값이 가중평균입니다. 인사평가나 성적 산출에서 자주 쓰이는 계산 방식입니다.

실무 예시 3 — 다중 조건 개수·합계 세기

SUMPRODUCT는 조건을 비교연산자로 배열화해서 곱하는 방식으로 COUNTIFS·SUMIFS보다 유연한 조건 처리가 가능합니다. '지역이 서울이면서 금액이 10만원 이상인 건수'를 세려면 다음과 같이 작성합니다.

=SUMPRODUCT((B2:B100="서울")*(C2:C100>=100000))

괄호 안의 조건식은 참(1)/거짓(0)으로 변환된 배열을 만들고, 이를 곱하면 두 조건을 모두 만족하는 행만 1이 됩니다. 이 값을 그대로 더하면 조건을 만족하는 개수가 나옵니다. 금액까지 더하고 싶다면 마지막에 금액 배열을 하나 더 곱하면 됩니다.

=SUMPRODUCT((B2:B100="서울")*(C2:C100>=100000)*C2:C100)

자주 나는 오류와 주의사항

  • #VALUE! 오류: 배열들의 행 수(범위 크기)가 서로 다르면 발생합니다. B2:B101과 C2:C100처럼 범위 끝을 다르게 잡지 않았는지 확인하세요.
  • 전체 열 참조(B:B) 비권장: SUMPRODUCT에 B:B 같은 전체 열을 그대로 넣으면 100만 행 넘게 계산해 매우 느려집니다. 반드시 실제 데이터 범위만 지정하세요.
  • 텍스트가 섞인 열 곱셈 오류: 곱셈 대상 열에 숫자가 아닌 텍스트나 공백이 있으면 #VALUE! 오류가 납니다. --(더블 마이너스)나 N() 함수로 숫자로 강제 변환하면 해결됩니다.
  • 조건이 많을 때는 괄호 단위를 명확히: 조건식마다 괄호로 감싸고 * 로 연결해야 정확히 계산됩니다.
💡

SUMPRODUCT는 Ctrl+Shift+Enter 없이도 배열 계산이 되는 몇 안 되는 함수입니다. 최신 엑셀의 동적 배열과도 잘 호환되므로, 복잡한 조건부 집계가 필요할 때 가장 먼저 떠올리면 좋습니다.

실무 예시 4 — OR 조건(둘 중 하나만 맞아도)으로 합계 구하기

지역이 '서울'이거나 '부산'인 매출만 더하는 것처럼 조건을 OR로 연결하고 싶다면, 조건식을 곱하는(*) 대신 더해서(+) 사용합니다. 두 조건 중 하나라도 참이면 1 이상이 되어 합계에 포함됩니다.

=SUMPRODUCT(((B2:B100="서울")+(B2:B100="부산"))*C2:C100)

괄호 안 조건식을 더하면 서울이면서 부산일 수는 없으므로 결과는 항상 0 또는 1이 됩니다. 만약 한 행이 여러 조건을 동시에 만족할 수 있는 경우라면 더한 값이 2 이상이 될 수 있으므로, 이때는 곱셈 결과가 0보다 크면 1로 바꿔주는 --(SIGN(...)) 처리를 추가하는 것이 안전합니다.

SUMPRODUCT vs SUMIFS — 언제 무엇을 써야 할까

기준SUMPRODUCTSUMIFS
조건 연결 방식곱셈(AND)·덧셈(OR) 자유롭게 조합AND 조건만 지원(모든 조건 동시 만족)
OR 조건가능(조건식을 더해서 처리)불가능(SUMIFS 여러 개를 더해야 함)
곱셈이 필요한 집계(수량×단가)가능(핵심 기능)불가능(보조열 필요)
대용량 데이터 속도행이 많을수록 상대적으로 느림일반적으로 더 빠름
최소 지원 버전모든 버전엑셀 2007 이상
⚠️

SUMPRODUCT 조건식에 텍스트 함수(SEARCH, LEFT 등)를 섞어 쓸 때는 결과가 항상 '배열'로 나온다는 점을 기억해야 합니다. 조건마다 괄호로 정확히 감싸지 않으면 연산 우선순위가 꼬여 곱셈이 의도한 범위에 적용되지 않고 엉뚱한 값이 나올 수 있습니다.

복잡한 조건의 SUMPRODUCT 수식, AI로 바로 만들기 →

함께 보면 좋은 글