기본 콘텐츠로 건너뛰기

글

라벨이 SUMPRODUCT인 게시물 표시

[엑셀]SUMPRODUCT의 원리 — 배열 곱셈으로 조건을 표현하는 방법 조건을 0/1 배열로 바꿔 곱하는 논리

 재고 담당자 A씨는 "카테고리가 가전이거나 문구인 상품 중, 재고가 10개 미만인 것들의 총 재고 금액"을 구해야 했다. SUMIFS로 시도해봤지만 '이거나(OR)' 조건이 걸리는 순간 수식이 꼬이기 시작했다. 이럴 때 등장하는 함수가 SUMPRODUCT다. 이름 그대로 '곱한 것들의 합(sum of products)'인데, 이 단순한 이름 안에 조건부 집계 함수들과는 결이 다른 발상이 숨어 있다. SUMPRODUCT는 원래 무엇을 위한 함수였나 SUMPRODUCT의 원래 용도는 사실 단순하다. 두 개 이상의 배열을 같은 위치끼리 곱한 뒤 그 결과를 모두 더하는 것이다. =SUMPRODUCT(A2:A5, B2:B5) A열이 수량, B열이 단가라면 이 수식은 (A2×B2)+(A3×B3)+(A4×B4)+(A5×B5), 즉 각 행의 금액을 계산해 모두 더한 총 판매금액을 한 번에 구해준다. 여기까지는 조건과 아무 상관이 없다. 그런데 이 '배열끼리 곱해서 더한다'는 성질이, 조건을 표현하는 데도 그대로 활용될 수 있다는 점이 SUMPRODUCT를 특별하게 만든다. 핵심 원리 — 조건을 0과 1로 바꿔서 곱하기 엑셀에서 (A2:A100="가전") 처럼 범위와 조건을 비교하면, 그 결과는 TRUE 또는 FALSE로 이루어진 배열이 된다. 그리고 엑셀 내부에서 TRUE는 1로, FALSE는 0으로 계산에 참여한다. 즉 조건 하나를 '만족하면 1, 아니면 0'인 숫자 배열로 바꿀 수 있다는 뜻이다. SUMPRODUCT는 바로 이 성질을 이용해, 조건 배열과 금액 배열을 곱하는 방식으로 조건부 합계를 만들어낸다. 행 카테고리="가전" 재고<10 두 조건 곱(AND) 재고금액 곱해서 더할 값 1 1 (참) 1 (참) 1 50,000 50,000 2 1 (참) 0 (거짓) 0 30,000 0 3 0 (거짓) 1 (참) 0 20,000 0 이 표처럼 각 조건을 0...