무지개타고

더하기를 하자 - 열아홉번째 본문

Program

더하기를 하자 - 열아홉번째

OnRainbow 2010. 5. 29. 21:44
오튜에 흥미로운 질문이 올라왔는데...
언제나처럼 내 맘대로 정리를 해봤다.

질문은 대충 그랬다.
항목별 제시된 조건에 따라 각각의 점수를 구분짓고, 이를 종합해 최종 판정을 하겠다는 것.



그런데 제시된 조건이 많이 까탈스럽다.
그나마 부등호가 "미만"과 "이상"으로 일정하다는게 다행이랄까...



음...
어쩐담?
땡기긴 땡기는데...

그래서 조금 변형된 다조건 행렬을 구성했다.
제시된 조건을 "미만"이 기준값이 되게 먼저 입력하고,
행렬틀에 맞춰 빈 자리는 앞 조건에 제시된 값으로 채우고,
맨 우측 범위(최대값)가 지정되지 않은 경우는 임의로 10^100 을 부여했다.

설마 점수가 10^100을 초과한다면...
엑셀 도움말에 따르면 엑셀에서 최대로 사용할 수 있는 값은 9E+308이니
이를 적용하면 되겠다.



그럼 결과는...

그러나 이를 바라진 않았을거 같다.
별도 위치에 결과를 표기하는건...



b18 셀
=INDEX($B$7:$F$7,COUNTIF(OFFSET($B$7:$E$7,COLUMN(A7),0),"<="&B2)+1)

g18 셀
=IF(COUNTIF(B18:F18,B18)=COUNTA($A$8:$A$12),B18,$D$14)

즉 처음 보여준 양식에서 결과를 보여주길 원했겠지?

시간 좀 걸렸다...



g2 셀 (판정)
=INDEX($B$14:$D$14,MATCH(SUM(10^(ROW(INDIRECT("1:"&COUNTA($B$14:$C$14)))*(MMULT(1*(T(OFFSET($A$7,0,MMULT(COLUMN($B$7:$E$7)^0,1*($B2:$F2>=TRANSPOSE($B$8:$E$12)))+1))=TRANSPOSE($B$14:$C$14)),ROW($A$8:$A$12)^0)=COUNTA($A$8:$A$12)))),{11,101,2},0))

파이어폭스에서 저 수식이 제대로 보일지 모르겠지만...
배열수식이다.
Ctrl+Shift+Enter를 동시에 누르면 된다.

Comments