엑셀 SUMPRODUCT 함수 사용법

· 엉클벤 엑셀함수(스프레드시트)

핵심 요약

  • SUMPRODUCT는 같은 위치의 값끼리 곱한 뒤 그 결과를 모두 더합니다. =SUMPRODUCT(수량범위, 단가범위) 한 줄로 총매출이 나옵니다.
  • 조건부 합계는 =SUMPRODUCT((품목범위="Cookies")*수량범위*단가범위)처럼 조건식을 곱해 만듭니다. 조건이 참이면 1, 거짓이면 0으로 계산됩니다.
  • 모든 범위는 행·열 크기가 같아야 하며, 크기가 다르면 #VALUE! 오류가 납니다.

품목별 판매 수량과 단가가 나란히 있는 표에서 하루 총매출을 구하려면 보통 "수량×단가" 열을 하나 더 만들고 그 열을 SUM으로 더합니다. 표가 작을 때는 괜찮지만 보조 열이 늘어날수록 시트가 복잡해집니다.

SUMPRODUCT 함수를 쓰면 보조 열 없이 곱하기와 더하기를 한 번에 끝낼 수 있습니다. 이 글에서는 SUMPRODUCT의 계산 순서, 실제 표에서 총매출을 구하는 방법, 조건을 걸어 합계와 개수를 구하는 응용, 자주 나는 오류를 정리합니다.

곱하고 더하고 한 번에! - SUMPRODUCT 함수

SUMPRODUCT 함수 구조와 계산 순서

=SUMPRODUCT(배열1, 배열2, 배열3, ...)
인수뜻예시
배열1곱할 첫 번째 범위 또는 배열(필수)C3:C5
배열2, …배열1과 같은 크기의 범위 또는 배열(선택)D3:D5

여기서 배열은 {1, 2, 3}처럼 중괄호로 묶은 값 목록이나 C3:C5 같은 셀 범위를 말합니다. 엑셀은 각 배열의 첫 번째 값끼리, 두 번째 값끼리 곱한 다음 그 곱들을 더합니다.

=SUMPRODUCT({1, 2, 3}, {4, 5, 6})
→ (1×4) + (2×5) + (3×6)
→ 4 + 10 + 18 = 32

배열을 세 개 넣으면 같은 위치의 세 값을 곱합니다. =SUMPRODUCT({1,2,3}, {4,5,6}, {0,2,1})은 (1×4×0) + (2×5×2) + (3×6×1) = 0 + 20 + 18 = 38입니다. 배열을 하나만 넣으면 곱할 대상이 없으므로 그 배열의 합계와 같습니다.

수량과 단가로 총매출 한 번에 구하기

아래 표에는 품목(Item), 판매 수량(Units sold), 단가(Price)가 있습니다. F2 셀에 하루 총매출을 넣어 보겠습니다.

Cookies 2948개 1.50달러, Brownies 1965개 3달러, Cakes 435개 10달러가 입력된 표와 비어 있는 Total sales 셀 F2
품목별 판매 수량과 단가 표, F2에 총매출을 구할 예정 (영문판 엑셀 화면 · 이미지 출처: Deskbright's Ultimate Excel Book, 저자 허락 하에 사용)
  1. F2 셀을 선택합니다.
  2. =SUMPRODUCT(C3:C5, D3:D5)를 입력하고 Enter를 누릅니다.
F2 셀에 =SUMPRODUCT(C3:C5,D3:D5)를 입력해 수량 범위 C3:C5와 단가 범위 D3:D5가 색 테두리로 표시된 화면
수량 범위와 단가 범위를 넣은 SUMPRODUCT 수식 (영문판 엑셀 화면 · 이미지 출처: Deskbright's Ultimate Excel Book, 저자 허락 하에 사용)

계산 과정은 2,948×$1.50 = $4,422, 1,965×$3.00 = $5,895, 435×$10.00 = $4,350이고, 세 값을 더한 $14,667이 결과로 나옵니다. "수량×단가" 보조 열을 만들지 않고도 같은 답을 얻었습니다.

같은 원리로 가중 평균도 구할 수 있습니다. =SUMPRODUCT(값범위, 가중치범위)/SUM(가중치범위)처럼 곱의 합을 가중치 합으로 나누면 됩니다.

조건을 걸어 합계와 개수 구하기

SUMPRODUCT가 실무에서 자주 쓰이는 이유는 조건식을 곱해 넣을 수 있기 때문입니다. B3:B5="Cookies"는 행마다 TRUE 또는 FALSE를 만들고, 이 값에 숫자를 곱하면 TRUE는 1, FALSE는 0으로 계산됩니다.

구하려는 값수식결과
Cookies 매출만=SUMPRODUCT((B3:B5="Cookies")*C3:C5*D3:D5)$4,422
Cookies 또는 Cakes 매출=SUMPRODUCT(((B3:B5="Cookies")+(B3:B5="Cakes"))*C3:C5*D3:D5)$8,772
수량 1,000 이상이면서 단가 5달러 미만 매출=SUMPRODUCT((C3:C5>=1000)*(D3:D5<5)*C3:C5*D3:D5)$10,317
수량 1,000 이상인 품목 수=SUMPRODUCT(--(C3:C5>=1000))2

정리하면 그리고(AND) 조건은 곱하기(*), 또는(OR) 조건은 더하기(+)로 연결합니다. 마지막 수식의 --는 TRUE/FALSE를 1/0으로 바꾸는 표기입니다.

조건식을 쉼표로 따로 넘기면 결과가 0이 될 수 있습니다. =SUMPRODUCT((B3:B5="Cookies"), C3:C5, D3:D5)는 TRUE/FALSE가 숫자로 바뀌지 않아 0으로 처리되기 때문입니다. 조건식 앞에 --를 붙이거나, 위 표처럼 곱하기로 묶어 쓰세요.

자주 나는 오류와 주의점

  • 범위 크기가 다를 때: =SUMPRODUCT(C3:C5, D3:D6)처럼 행 수가 다르면 #VALUE! 오류가 납니다. 모든 범위의 시작 행과 끝 행을 맞추세요.
  • 머리글 텍스트가 섞였을 때: 쉼표로 나열한 방식은 텍스트를 0으로 보고 넘어가지만, C2:C5*D2:D5처럼 곱하기 방식에 머리글 행을 포함하면 텍스트를 곱하게 되어 #VALUE!가 납니다.
  • 열 전체 참조: C:C처럼 열 전체를 넣으면 100만 행 이상을 계산하므로 파일이 느려질 수 있습니다. 실제 데이터가 있는 범위만 지정하는 편이 좋습니다.
  • 대체 함수: 조건이 "같다·크다" 수준이라면 SUMIFS가 더 읽기 쉽습니다. SUMPRODUCT는 OR 조건이나 계산식이 들어간 조건처럼 SUMIFS로 표현하기 어려울 때 특히 유용합니다.

구글 스프레드시트에서는

구글 스프레드시트에도 같은 이름과 인수 구조의 SUMPRODUCT가 있어 =SUMPRODUCT(C3:C5, D3:D5)를 그대로 쓸 수 있습니다. 조건식을 곱해 만드는 조건부 합계도 같은 방식으로 동작합니다. 범위 크기가 서로 다르면 오류가 나는 점도 같으니 범위를 맞춰 입력하세요.

자주 묻는 질문

SUMPRODUCT는 배열 수식이라 Ctrl+Shift+Enter를 눌러야 하나요?

아닙니다. SUMPRODUCT는 원래 배열을 다루는 함수라서 조건식을 곱해 넣은 경우에도 Enter만 누르면 계산됩니다.

SUMPRODUCT와 SUMIFS 중 무엇을 써야 하나요?

단순히 "품목이 Cookies인 수량 합계"처럼 조건에 맞는 한 열을 더할 때는 SUMIFS가 짧고 빠릅니다. 두 열을 곱한 값을 조건부로 더하거나 OR 조건을 섞어야 할 때는 SUMPRODUCT가 편리합니다.

결과가 0으로 나오는데 수식은 맞는 것 같습니다.

조건식을 쉼표로 따로 넘겼는지 확인하세요. TRUE/FALSE 배열은 숫자로 바뀌지 않아 0으로 처리됩니다. 또 수량이나 단가가 텍스트로 저장된 숫자여도 쉼표 방식에서는 0으로 계산됩니다.

함께 보면 좋은 글: 엑셀 SUM 함수와 누적 합계 구하기, 엑셀 수식과 함수 기초 중첩 함수까지

벤

글쓴이 · 엉클벤

엑셀·스프레드시트 함수, AI 활용법, 컴퓨터·스마트폰 생활 팁을 따라 하기 쉽게 정리합니다. 틀린 내용은 연락처로 알려 주세요. 소개 보기

📚 벤스페이퍼 엑셀 강좌

기초부터 피벗 테이블까지 배우는 순서대로 정리한 엑셀 강좌 전체 목차에서 다음 글을 이어서 볼 수 있습니다.

Powered by Blogger