엑셀 sumproduct 함수 사용 방법 정리

2018. 6. 3. 10:06 / 서기랑

 배열 또는 범위의 대응되는 값끼리 곱해서 그 합을 구하는 함수.

 기본인 product 함수가 한 범위 안의 셀을 모두 곱하는 함수라면 sumproduct 함수는 여러 개의 범위를 지정하고 지정한 범위마다 서로 대응되는 셀의 곱을 구한 뒤 합하는 함수이다.

 (A1*B1 + A2*B2와 같은 형식)


엑셀 sumproduct 함수 기본

 우선 함수의 기본 문법은 다음과 같다.

 =sumproduct(array1, [array2], ...)

엑셀 sumproduct 함수 기본


 array1 : 첫 번째 범위를 지정하는 부분.

 열과 행을 섞어서 범위를 지정하는 등 범위를 지정하는 데에 자유로운 편이며 별다른 제한은 없다.

 다만 범위에 문자가 섞여있으면 대응되는 다른 범위([array2] 등)과 곱을 할 때 숫자*문자가 되는 상황에 에러가 발생하기 때문에 되도록이면 문자가 있는 범위는 피하는 것이 좋다.

 (반대로 말하면 곱하는데 문제가 없다면(문자*문자인 상황) 문자가 섞여도 문제없다.)

array1


 [array2] : 두 번째 범위를 지정하는 부분.

 두 번째 범위부터는 첫 번째 범위와 대응되는 범위를 지정해야 때문에 행이면 행, 열이면 열, 둘 다 포함이면 둘 다 포함과 같이 같은 형태의 범위를 지정해야 한다.

 예를 들면 array1을 B2:B5과 같이 열을 범위로 지정하였다면 [array2] 역시 D3:D6과 같은 식으로 열로 된 범위를 지정해야 하며 이때 행은 꼭 같을 필요는 없지만 범위에 포함되는 셀의 개수는 같아야 한다.

array2


 이렇게 범위를 지정하게 되면 범위의 셀 별로 1:1로 대응하여 곱을 하게 되는데 계산되는 방식은 다음과 같다.

 B2*D3 + B3*D4 + B4*D5 + B5*D6

 (2*1) + (3*2) + (4*3) + (5*4)

sumproduct 함수 원리


 참고로 []가 있어서 생략이 가능하긴 하지만 적어도 [array2]까지는 넣어야 비로소 sumproduct 함수가 제대로 된 역할을 한다고 볼 수 있으며 만약 array1의 범위만 지정하고 함수를 완성하면 대응되는 셀이 없어 곱을 하지 못하기 때문에 array1의 범위에 있는 값만 합하게 된다.


 그 외 (...) : 세 번째 네 번째 등 범위는 얼마든지 추가가 가능하다.

 범위를 추가해도 크게 다를 것 없이 대응되는 셀들끼리 곱을 하고 결과 값을 합한다.

 (2*1*4*9) + (3*2*5*8) + (4*3*6*7) + (5*4*7*6)

sumproduct 다중 범위 지정


사용 예

 아래의 표에서 모든 인원의 먹은 간식 가격의 총합을 알아보자

sumproduct 함수 사용 예


 간식 가격의 총합을 구하기 위해서는 가격 * 개수 그리고 인원별로 나온 결과 값을 모두 합하면 된다.

 이를 위해 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

sumproduct 함수결과 예