본문 바로가기

카테고리 없음

vlookup 여러 값 찾아 더하기(*곱하기)(sumproduct 활용)

생각났을 때 정리해둔다. vlookup으로 끙끙대다가 sumproduct로 해결됐기 때문이다.

 

가끔 우리가 테이블에서 특정 항목을 찾아 같은 열에서 돌려주는 것을 할 때가 있다.

이럴 때는 vlookup을 보통 사용한다. 아래 그림처럼 말이다.

 

 

1. VLOOKUP 사용 / VLOOKUP을 사용했을 때 한계

vlookup 사용 방법

잘 살펴보면 아래와 같다.

=VLOOKUP(찾을내용, 값을 찾을 범위, 돌려줄 N번째행, 일치여부TF)

 

이런식으로 해서 원하는 항목을 찾아 해당 테이블에서 특정 열의 값을 돌려준다. 행을 돌려주는 hlookup과 함께 자주쓰이는 함수 중의 하나이다.

 

vlookup 함수 사용

그런데 가끔 우리가 바나나처럼 1개만 있는 게 아니라 항목별로 "수량"과 "단가"를 "곱"해서 "더"해야 할 때가 있다. 항목별 판매금액과 같은 것이다.

예를 들면 과일 항목의 사과, 바나나, 파인애플 전부 다 판매금액을 다 합쳐야 하는 것이다.

이 때 그냥 vlookup을 써서 '과일'을 찾아 수량*단가를 곱하게 되면 맨 첫번째 있는 사과의 수량*단가로  아래처럼 6,000이라는 값만 나오게 된다.

vlookup으로 여러개의 값을 한번에 구할 수가 없다. "과일"을 찾으면 맨 처음 찾은 과일의 값만 돌려준다.

 

2. 기본적인 SUMPRODUCT 사용법

이 때 쓰는 것이 sumproduct이다. sumproduct는 원래 두 배열을 곱해서 하나값으로 돌려주는거다.

해당 부분에서는 수량과 단가를 가로로 모두 곱해서 더해주는 역할을 한다.

(추가 설명) : https://crossall.tistory.com/3

Sumproduct  원리

근데 여튼 우리가 하고 싶은 것은 "과일"만의 총 판매금액을 알고 싶은 것이다.

이럴 때는 SUMPRODUCT를 써야 한다.

 

3. SUMPRODUCT로 항목에 속하는 여러 값의 곱-합 구하기

=SUMPRODUCT(((A1:A10)="과일")*1

라고 하면 어떤 일이 벌어지냐면, 위의 예제에서 3이 나온다.

그 말인 즉슨 A1부터 A10까지 중에서 과일이 있으면 True(1)을 반환, 없으면 False(0)을 반환하는 것이다.

 

항목 (An="과일")
과일 1
채소 0
채소 0
과일 1
생선 0

자 그럼 이제 쉽게 항목에 있는 모든 과일 부분에서 수량과 단가를 곱해 합을 구할 수 있게 된다.

=SUMPRODUCT(((A2:A10)=F2)*1,C2:C10,D2:D10)

=SUMPRODUCT(((판별할 항목 열)=찾을항목)*1, 열2, 열3)

 

즉, (1*2*3,000) + (1*1*5,000) + (1*1*6,000) 해서 17,000원이라는 값이 나오게 된다.

sumproduct로 항목의 판매금액 전체 구하기
완성

 

맨 아래에서 음료의 경우 A 열에 없기 때문에

첫번째 곱해야 할 값이 모두 0이 되어 0원이 나오게 된다.

 

 

한참  vlookup 가지고 씨름하다 sumproduct로 완료하게 되어 신나서 올려본다.