엑셀 sumproduct 함수 사용 방법 정리
배열 또는 범위의 대응되는 값끼리 곱해서 그 합을 구하는 함수.
기본인 product 함수가 한 범위 안의 셀을 모두 곱하는 함수라면 sumproduct 함수는 여러 개의 범위를 지정하고 지정한 범위마다 서로 대응되는 셀의 곱을 구한 뒤 합하는 함수이다.
(A1*B1 + A2*B2와 같은 형식)
엑셀 sumproduct 함수 기본
우선 함수의 기본 문법은 다음과 같다.
=sumproduct(array1, [array2], ...)
array1 : 첫 번째 범위를 지정하는 부분.
열과 행을 섞어서 범위를 지정하는 등 범위를 지정하는 데에 자유로운 편이며 별다른 제한은 없다.
다만 범위에 문자가 섞여있으면 대응되는 다른 범위([array2] 등)과 곱을 할 때 숫자*문자가 되는 상황에 에러가 발생하기 때문에 되도록이면 문자가 있는 범위는 피하는 것이 좋다.
(반대로 말하면 곱하는데 문제가 없다면(문자*문자인 상황) 문자가 섞여도 문제없다.)
[array2] : 두 번째 범위를 지정하는 부분.
두 번째 범위부터는 첫 번째 범위와 대응되는 범위를 지정해야 때문에 행이면 행, 열이면 열, 둘 다 포함이면 둘 다 포함과 같이 같은 형태의 범위를 지정해야 한다.
예를 들면 array1을 B2:B5과 같이 열을 범위로 지정하였다면 [array2] 역시 D3:D6과 같은 식으로 열로 된 범위를 지정해야 하며 이때 행은 꼭 같을 필요는 없지만 범위에 포함되는 셀의 개수는 같아야 한다.
이렇게 범위를 지정하게 되면 범위의 셀 별로 1:1로 대응하여 곱을 하게 되는데 계산되는 방식은 다음과 같다.
B2*D3 + B3*D4 + B4*D5 + B5*D6
(2*1) + (3*2) + (4*3) + (5*4)
참고로 []가 있어서 생략이 가능하긴 하지만 적어도 [array2]까지는 넣어야 비로소 sumproduct 함수가 제대로 된 역할을 한다고 볼 수 있으며 만약 array1의 범위만 지정하고 함수를 완성하면 대응되는 셀이 없어 곱을 하지 못하기 때문에 array1의 범위에 있는 값만 합하게 된다.
그 외 (...) : 세 번째 네 번째 등 범위는 얼마든지 추가가 가능하다.
범위를 추가해도 크게 다를 것 없이 대응되는 셀들끼리 곱을 하고 결과 값을 합한다.
(2*1*4*9) + (3*2*5*8) + (4*3*6*7) + (5*4*7*6)
사용 예
아래의 표에서 모든 인원의 먹은 간식 가격의 총합을 알아보자
간식 가격의 총합을 구하기 위해서는 가격 * 개수 그리고 인원별로 나온 결과 값을 모두 합하면 된다.
이를 위해 product(곱)와 sum(합)을 사용해도 결과를 얻을 수는 있지만 sumproduct 함수를 사용한다면 더 쉽게 결과를 얻을 수 있는데 우선 가격의 범위는 E3에서 E8까지이니 array1에는 E3:E8을 넣으면 되며 개수 부분의 범위는 F3에서 F8까지가 되니 [array2]는 F3:F8로 넣어주면 원하는 결과를 얻을 수 있다.
(순서가 바뀌어도 상관없다.)
=sumproduct(E3:E8, F3:F8)
1000*3 + 1500*2 + 1000*1 + 1200*4 + 800*2 + 1500*1 = 14900