무지개타고

더하기를 하자 - 29 본문

Program

더하기를 하자 - 29

OnRainbow 2014. 3. 9. 20:56
익히 해오던 수식 갖고 앞뒤만 조금 조정해주면 되는 것이었는데
이를 못해서 십수년을 숙제로 담고 살았다.
에휴...

선입선출(FIFO)을 살펴보자.

단가 = 금액 ÷ 수량
인데,
입고량과 출고량이 딱딱 맞으면 좋으련만 현실은 그게 아닌지라.



f3 셀(금액1)
=IF(OR($E3=0,SUM($B$3:$B3)<SUM($E$3:$E3)),0,SUM((MMULT(1*(ROW($B$3:$B3)>TRANSPOSE(ROW($B$3:$B3))),$B$3:$B3)<TRANSPOSE(SUM($E$2:$E2)+ROW(INDIRECT("1:"&$E3))))*(TRANSPOSE(SUM($E$2:$E2)+ROW(INDIRECT("1:"&$E3)))<=MMULT(1*(ROW($B$3:$B3)>=TRANSPOSE(ROW($B$3:$B3))),$B$3:$B3))*($D$3:$D3)))

물론 배열수식이다.
때문에 Ctrl, Shift, Enter 키를 동시에 눌러줘야 한다.



그런데 금액1 수식에는 한계가 있다.
이산형자료 즉 정수만 계산 가능하다.

이럴 땐 보통 컨닝이 빠르긴한데...
그래서 또 숙제~

수학 아니 산수만 좀더 열심히 했으면 이리 고생 안 했을텐데...
마음에 안 드는 부분도 남아 있지만
어쨌든 나름 숙제 끝이다.

g3 셀(금액2)
=IF(OR($E3=0,SUM($B$3:$B3)<SUM($E$3:$E3)),0,SUM((IF(SUM($E$3:$E3)>MMULT(1*(ROW($B$3:$B3)>=TRANSPOSE(ROW($B$3:$B3))),$B$3:$B3),MMULT(1*(ROW($B$3:$B3)>=TRANSPOSE(ROW($B$3:$B3))),$B$3:$B3),SUM($E$3:$E3))-IF(SUM($E$3:$E3)>MMULT(1*(ROW($B$3:$B3)>TRANSPOSE(ROW($B$3:$B3))),$B$3:$B3),MMULT(1*(ROW($B$3:$B3)>TRANSPOSE(ROW($B$3:$B3))),$B$3:$B3),SUM($E$3:$E3)))*($D$3:$D3))-SUM($G$2:$G2))

물론 배열수식이다.



Comments