무지개타고

더하기를 하자 - 열네번째 본문

Program

더하기를 하자 - 열네번째

OnRainbow 2010. 2. 4. 14:39
더하기를 갖고 많이도 우려먹었다.
엑사모에 올라온 질문을 갖고 또 우려먹으련다.

얘기는 대충 이렇다.
제품별로 판매량이 날짜별로 집계되는데...
각각의 제품별을 구성하는 부품도 덩달아 몇개나 출고 됐는지를 집계하고 잡다는 것.

'단순 더하기'의 수식을 원했다면, 아마도 질문 자체를 않았겠지?

b10 셀 (단순 더하기)
=$F3*B$3+$G3*B$4+$H3*B$5



그래서 좀 봤다.
참조하는 '제품별 부품구성' 표를...
훑어보니 제품과 부품의 배치 순서가 동일하다???
MMult 함수가 딱이다.

f10 셀 (MMult 더하기(순서:동일))
=MMULT($F3:$H3,B$3:B$5)

그러나 순서가 동일하길 바라는건 욕심일게다.
아니나 다를까, 순서가 동일하지 않는 경우를 되묻던데...

이 경우에도 MMult 함수를 쓸만한 방법 없을까?
하고 머리를 굴려봤는데... 텅~~~

며칠 지나서야 MMult 함수를 이용한 방법이 약간 떠올랐다.
이미 버스는 떠났지만...

b17 셀 (MMult 더하기(순서:혼합))
=SUM(MMULT(($J$3:$J$6=$A17)*($K$3:$M$6),TRANSPOSE(MMULT(COLUMN($K$2:$M$2)^0,($A$3:$A$5=$K$2:$M$2)*(B$3:B$5)))))



그러나 아래 수식이 좀더 손 쉽게 느껴진다.

k17 셀 (SumProduct 더하기(순서:혼합))
=SUMPRODUCT(SUMIF($K$2:$M$2,$A$3:$A$5,OFFSET($K$2:$M$2,MATCH($J17,$J$3:$J$6,0),0)),B$3:B$5)

Comments