무지개타고

더하기를 하자 - 열여덟번째 본문

Program

더하기를 하자 - 열여덟번째

OnRainbow 2010. 4. 5. 23:28
순차적으로 배열된 자료를 갖고, 출현당 상승일 즉 평균 상승일을 구하는 수식을
생각해 봤다.


※ 주의 : 자료 인용에 오류가 있을 수 있습니다.

c3 셀 (상승일)
=N(B3>B2)

d3 셀 (출현)
=N(C2<>C3)*C3

그런데 이 방법이 싫다면?
싫은 이유는 결과를 얻기 위해 다른 열에 계산 결과를 보여줘야 하기 때문이다.

따라서 필요한건 뭐!!!
더하기로 한 방에 끝내자.

그러나 수식이 그닥 맘에 들지 않는다.
다른 방법이 있을거 같은데... -_-a

b26 셀 (총상승일)
=SUMPRODUCT(N(B2:B22<B3:B23))

b27 셀 (총출현횟수)
=SUM(IF(ROW(INDIRECT("1:"&ROWS(B$2:B$23)+1))>1,FREQUENCY(MMULT(1*(((MMULT(((B$2:B$22<B$3:B$23)=TRANSPOSE((B$2:B$22<B$3:B$23)))*(B$2:B$22<B$3:B$23)*(ROW(B$3:B$23)<=TRANSPOSE(ROW(B$3:B$23))),1*(ROW(B$3:B$23)<=TRANSPOSE(ROW(B$3:B$23))))=(TRANSPOSE(ROW(B$3:B$23))-ROW(B$3:B$23)+1))*((TRANSPOSE(ROW(B$3:B$23))-ROW(B$3:B$23)+1)>0)+TRANSPOSE((MMULT(((B$2:B$22<B$3:B$23)=TRANSPOSE((B$2:B$22<B$3:B$23)))*(B$2:B$22<B$3:B$23)*(ROW(B$3:B$23)<=TRANSPOSE(ROW(B$3:B$23))),1*(ROW(B$3:B$23)<=TRANSPOSE(ROW(B$3:B$23))))=(TRANSPOSE(ROW(B$3:B$23))-ROW(B$3:B$23)+1))*((TRANSPOSE(ROW(B$3:B$23))-ROW(B$3:B$23)+1)>0)))>0),ROW(B$3:B$23)^0),ROW(INDIRECT("1:"&ROWS(B$2:B$23)))-1)/(ROW(INDIRECT("1:"&ROWS(B$2:B$23)+1))-1)))

배열수식이다.



Comments