더하기를 하자 - 그 세번째

Program 2008년 07월 15일 14시

41 다음과 같은 예제 자료가 있을때
엑셀을 이용해 구분에 따른 합계을 구해보자.

수식으로 처리하기엔 좀 복잡한데, 굳이 수식으로 처리한다면
아래 처럼 나타낼 수 있다.(집계①)

d3 셀
=IF(SUM(N((FREQUENCY(MATCH($A$2:$A$13,$A$2:$A$13,0),MATCH($A$2:$A$13,$A$2:$A$13,0))>0)))>=ROW(A1),INDEX($A$2:$A$13,SMALL(IF(FREQUENCY(MATCH($A$2:$A$13,$A$2:$A$13,0),MATCH($A$2:$A$13,$A$2:$A$13,0))>0,ROW($A$2:$A$13)-ROW($A$1)),ROW(A1))),"")

42물론 배열수식이다.

e4 셀
=SUMIF($A$2:$A$13,D3,$B$2:$B$13)



43여기서 구분별 합계 자료를 크기 순서대로 정열하고자 한다면 
수식은 더욱 복잡해진다.(집계②)

g3 셀
=IF(SUM(N((FREQUENCY(MATCH($A$2:$A$13,$A$2:$A$13,0),MATCH($A$2:$A$13,$A$2:$A$13,0))>0)))>=ROW(A1),INDEX($A$2:$A$14,LARGE(((FREQUENCY(MATCH($A$2:$A$13,$A$2:$A$13,0),MATCH($A$2:$A$13,$A$2:$A$13,0))>0)*(SUMIF($A$2:$A$14,$A$2:$A$14,$B$2:$B$14))=LARGE((FREQUENCY(MATCH($A$2:$A$13,$A$2:$A$13,0),MATCH($A$2:$A$13,$A$2:$A$13,0))>0)*(SUMIF($A$2:$A$14,$A$2:$A$14,$B$2:$B$14)),ROW(A1)))*ROW(INDIRECT("1:"&ROWS($A$2:$A$14))),SUM((LARGE((FREQUENCY(MATCH($A$2:$A$13,$A$2:$A$13,0),MATCH($A$2:$A$13,$A$2:$A$13,0))>0)*(SUMIF($A$2:$A$14,$A$2:$A$14,$B$2:$B$14)),ROW(INDIRECT("1:"&ROWS($A$2:$A$14))))=LARGE((FREQUENCY(MATCH($A$2:$A$13,$A$2:$A$13,0),MATCH($A$2:$A$13,$A$2:$A$13,0))>0)*(SUMIF($A$2:$A$14,$A$2:$A$14,$B$2:$B$14)),ROW(A1)))*(ROW(INDIRECT("1:"&ROWS($A$2:$A$14)))<=ROW(A1))))),"")

무식하면 용감하다고, 진짜 무식한 수식이 나와버렸다.
너무 무식해보여 이름정의를 이용해 대충 정리해봐도...

=IF(SUM(N((순서>0)))>=ROW(A1),INDEX(rng_구분,LARGE(((순서>0)*(부분합)=LARGE((순서>0)*(부분합),ROW(A1)))*위치,SUM((LARGE((순서>0)*(부분합),위치)=LARGE((순서>0)*(부분합),ROW(A1)))*(위치<=ROW(A1))))),"")

역시 무식하다는 말을 피하긴 어렵겠다.

그럼 이렇게 무식한 수식을 왜 생각했나?
엑셀이 지원하는 기능을 한번 고려해보라는 말을 하기 위해서다.

44몇가지 방법이 있을텐데, 피벗테이블 기능을 이용해
집계표를 먼저 구성한다.(집계③)

그리고 구분 필드를 선택해 내림차순 정렬을 한다.
이때 '표시'를 지정한다면
지정된 순위 내에 자료만 피벗테이블에 나타낼 수 있다.


45  46

나라면?
당연히 피벗테이블을 이용할 것이다.
클릭 몇번이면 처리될 자료를 무식한 수식을 구성해 처리한다는 것은,
('배열수식 증후군' 증세가 있는 내가 봐도) 낭비(?)다.

그리고 혹시 생성한 피벗테이블 결과(집계③)를 다른 셀에서 불러오고자 하려면...
앞에서는 비교도 안될 만큼의 아주 간단한 수식으로 처리할 수 있다.

47

p3 셀
=INDEX($M$3:$M$8,MATCH(Q3,$N$3:$N$8,0)+COUNTIF(Q$3:Q3,Q3)-1)

q3 셀
=LARGE($N$3:$N$8,ROW(A1))

여기서 집계④는 집계③이 내림차순 정렬됐을때에 한한다.


트랙백 주소 :: http://instatistics.officetutor.org/trackback/962

댓글을 달아 주세요