=SUMPRODUCT(B2:B6,C2:C6)는 B열의 각 수량에 C열의 옆 가격을 곱한 뒤 그 결과를 더합니다. 행별 합계 열 없이 셀 하나에서 주문 합계를 구합니다.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Item | Qty | Price | Line total | Total | |
| 2 | Pen | 4 | $1.50 | $6.00 | $30.70 | |
| 3 | Notebook | 2 | $3.25 | $6.50 | $30.70 | |
| 4 | Folder | 5 | $0.80 | $4.00 | ||
| 5 | Stapler | 1 | $7.90 | $7.90 | ||
| 6 | Marker | 3 | $2.10 | $6.30 |
F2와 F3은 같은 $30.70을 보여 줍니다. D열의 행별 합계는 SUMPRODUCT가 하는 일을 보여 주려고 넣은 것입니다. 4 × 1.50, 2 × 3.25 하는 식으로 곱한 뒤 SUM합니다. 수량을 바꾸면 두 합계가 모두 따라 바뀝니다.
SUMPRODUCT 구문
=SUMPRODUCT(array1, [array2], [array3], ...)
- 각 배열은 범위이거나 범위를 만들어 내는 계산이며, 모두 크기가 같아야 합니다. 다르면 SUMPRODUCT는
#VALUE!를 반환합니다. - 배열이 둘 이상이면 같은 위치의 값끼리 곱한 뒤 그 곱을 더합니다.
- 배열이 하나면 그냥 더하기만 합니다. 아래의 조건 형태가 동작하는 이유가 이것입니다.
=SUMPRODUCT((A2:A7="North")*C2:C7)에는 이미 곱해진 배열이 하나 있습니다. - 별도의 인수로 넘긴 텍스트는 0으로 셉니다.
*계산 안의 텍스트는#VALUE!를 일으킵니다.
SUMPRODUCT는 모든 엑셀 버전에서 Ctrl+Shift+Enter(Mac에서는 Cmd+Shift+Enter) 없이 배열을 다룹니다. 그래서 SUMIFS가 나오기 전에는 조건부 합계의 표준 도구였고, 지금도 SUMIFS로 처리할 수 없는 경우에 쓰입니다.
조건을 쓰는 SUMPRODUCT
범위에 대한 비교식 A2:A7="North"는 행마다 TRUE나 FALSE를 하나씩 반환합니다. 이것을 곱하면 TRUE인 행은 남고(×1) 나머지는 0이 됩니다(×0). AND가 필요하면 비교식 두 개를 곱하세요.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Region | Product | Sales | Formula | Result | |
| 2 | North | Apple | 120 | North sales | 230 | |
| 3 | South | Pear | 45 | North Apple sales | 150 | |
| 4 | North | Pear | 80 | Count North | 3 | |
| 5 | East | Apple | 55 | Count over 50 | 4 | |
| 6 | South | Apple | 200 | Without -- | 0 | |
| 7 | North | Apple | 30 |
F2는 North 행 세 개를 더해 230을 냅니다. F3은 조건 두 개를 곱하므로 둘 다 참인 행만 셉니다: 150. 더하지 않고 세려면 값을 빼고 --(빼기 기호 두 개)로 TRUE/FALSE를 숫자로 바꿉니다. F4는 North 행 3개를 셉니다. F6은 --가 왜 중요한지 보여 줍니다. SUMPRODUCT는 TRUE 값을 더하지 않으므로 --가 없는 수식은 0을 반환합니다.
처음 네 개는 SUMIF, SUMIFS, COUNTIF와 같은 결과를 냅니다. SUMPRODUCT가 진가를 발휘하는 것은 다음 섹션입니다.
SUMIFS로 표현할 수 없는 조건
SUMIFS는 열을 고정된 조건과 비교합니다. 날짜의 월을 꺼내거나, 두 열을 서로 비교하거나, 더하기 전에 수량에 가격을 곱할 수는 없습니다. SUMPRODUCT는 각 조건이 평범한 계산이므로 이 모든 것을 할 수 있습니다.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Region | Date | Target | Actual | Formula | Result | |
| 2 | North | 2026-01-05 | 100 | 120 | February sales | 135 | |
| 3 | South | 2026-01-12 | 60 | 45 | Rows over target | 3 | |
| 4 | North | 2026-02-03 | 90 | 80 | North or East sales | 285 | |
| 5 | East | 2026-02-18 | 50 | 55 | Above target by | 75 | |
| 6 | South | 2026-03-02 | 150 | 200 | |||
| 7 | North | 2026-03-20 | 40 | 30 |
- G2는 모든 날짜의 MONTH를 구해 2월 행만 남깁니다: 80 + 55 = 135. 이 수식은 모든 연도의 2월을 더합니다. 한 해만 원하면
*(YEAR(B2:B7)=2026)을 덧붙이세요. - G3은 두 열을 행 단위로 비교해 Actual이 Target을 넘은 행을 셉니다.
- G4는 OR입니다. 두 조건을 더하면 하나라도 참일 때 1이 됩니다(둘 다 참이면 2가 되므로
>0이 있습니다). North 또는 East: 285. - G5는 목표를 넘은 행에 대해서만 목표를 얼마나 넘었는지 더합니다.
가중 합계와 가중 평균을 구하는 SUMPRODUCT
수량 곱하기 가격은 가중 합계이며, 여기에 조건을 더할 수 있습니다. 같은 계산을 가중치의 합으로 나누면 가중 평균이 됩니다. =SUMPRODUCT(B2:B6,C2:C6)/SUM(B2:B6)는 판매된 품목당 평균 가격입니다.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Region | Product | Qty | Price | Formula | Result | |
| 2 | North | Apple | 10 | $1.20 | North revenue | $31.00 | |
| 3 | South | Pear | 4 | $1.50 | All revenue | $61.00 | |
| 4 | North | Pear | 6 | $1.50 | Average price per item | $1.36 | |
| 5 | East | Apple | 8 | $1.20 | |||
| 6 | South | Apple | 12 | $1.20 | |||
| 7 | North | Plum | 5 | $2.00 |
North는 사과 10개를 $1.20에, 배 6개를 $1.50에, 자두 5개를 $2.00에 팔았으므로 G2는 $31.00을 보여 줍니다. 가격의 단순 평균은 자두가 사과만큼 자주 팔린 것처럼 취급합니다. G4는 각 가격에 수량만큼 가중치를 둡니다.
연습: 조건을 건 매출액
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Region | Product | Qty | Price | Formula | Result | |
| 2 | North | Apple | 10 | $1.20 | South revenue | ||
| 3 | South | Pear | 4 | $1.50 | |||
| 4 | North | Pear | 6 | $1.50 | |||
| 5 | East | Apple | 8 | $1.20 | |||
| 6 | South | Apple | 12 | $1.20 | |||
| 7 | North | Plum | 5 | $2.00 |
직접 해 보세요: South 매출액을 구하세요. South 행에 대해서만 수량에 가격을 곱합니다. 수식은 G2에 쓰세요.
SUMPRODUCT와 SUMIFS 비교, 그리고 두 가지 오류
| 조건 | SUMIFS | SUMPRODUCT |
|---|---|---|
| 열이 어떤 값과 같음 | =SUMIFS(C2:C7,A2:A7,"North") | =SUMPRODUCT((A2:A7="North")*C2:C7) |
| 텍스트 포함 | =SUMIFS(C2:C7,B2:B7,"*app*") | =SUMPRODUCT(ISNUMBER(SEARCH("app",B2:B7))*C2:C7) |
| 날짜의 월 | 직접은 불가능 | =SUMPRODUCT((MONTH(B2:B7)=2)*D2:D7) |
| 열과 열 비교 | 불가능 | =SUMPRODUCT(--(D2:D7>C2:C7)) |
| 수량 × 가격 | 불가능 | =SUMPRODUCT(C2:C7,D2:D7) |
SUMIFS로 할 수 있는 일이면 SUMIFS를 쓰세요. 읽기 쉽고, 행이 수만 개일 때 더 빠르며, 열 전체를 받을 수 있습니다. =SUMPRODUCT((A:A="North")*C:C)는 백만 개가 넘는 행을 곱하다가 C1의 머리글 텍스트에 닿는 순간 #VALUE!를 반환하므로, SUMPRODUCT에는 A2:A500처럼 정확한 범위를 주세요.
자주 만나는 오류 두 가지:
- 크기가 다른 범위로 인한
#VALUE!.=SUMPRODUCT(B2:B6,C2:C7)는 실패합니다. 모든 범위가 같은 행을 덮어야 합니다. - 곱하는 범위의 텍스트로 인한
#VALUE!.C2:C7안에 머리글이나 "n/a"가 있으면 텍스트는 곱할 수 없으므로(A2:A7="North")*C2:C7이 깨집니다. 범위를 머리글 아래부터 시작하거나, 값을 별도의 인수로 넘기세요.=SUMPRODUCT(--(A2:A7="North"),C2:C7)는 C열의 텍스트를 0으로 취급합니다.
자주 묻는 질문
엑셀에서 SUMPRODUCT는 무엇을 하나요?
범위를 행 단위로 곱하고 그 곱을 더합니다. =SUMPRODUCT(B2:B6,C2:C6)는 B2C2 + B3C3 + ... + B6*C6이며, 예를 들어 수량 곱하기 가격을 더해 주문 합계를 구합니다.
SUMPRODUCT에 조건을 쓰려면 어떻게 하나요?
비교식을 곱합니다. =SUMPRODUCT((A2:A7="North")*C2:C7)는 North 행의 C2:C7을 더합니다. 비교식은 TRUE나 FALSE를 내고, 곱하면 1이나 0이 됩니다.
SUMPRODUCT에서 --는 무슨 뜻인가요?
빼기 기호 두 개로, TRUE와 FALSE를 1과 0으로 바꿉니다. =SUMPRODUCT(--(C2:C7>50))는 50보다 큰 값을 셉니다. 이것이 없으면 SUMPRODUCT는 TRUE/FALSE를 0으로 취급해 0을 반환합니다.
SUMPRODUCT와 SUMIFS 중 무엇을 써야 하나요?
SUMIFS의 조건으로 표현할 수 있으면 SUMIFS를 쓰세요. 읽기 쉽고 큰 범위에서 더 빠릅니다. 날짜의 월, 한 열과 다른 열의 비교, 수량 곱하기 가격처럼 조건에 계산이 필요하면 SUMPRODUCT를 쓰세요.
SUMPRODUCT가 #VALUE!를 반환하는 이유는 무엇인가요?
범위의 크기가 다르거나(B2:B6과 C2:C7), *로 곱하는 범위에 텍스트가 있기 때문입니다. 모든 범위의 크기를 같게 하고, 텍스트가 있는 범위는 별도의 인수로 넘기세요. 그러면 텍스트를 0으로 취급합니다.