무지개타고

치졸하고 유치찬란한 목록 정리 - 두번째 본문

Program

치졸하고 유치찬란한 목록 정리 - 두번째

OnRainbow 2009. 4. 1. 01:04

오피스튜터>>엑셀나눔터에 올라온 질문인데,
솔솔한 재미가 있어 내 맘대로 정리해봤다.

질문을 대충 정리하면,
각각의 분류 마다 필요로 하는 항목에 표시를 한다.
여기선 '1'로 나타냈다.
그리고 이렇게 입력된 정보를 유일한 목록으로 재구성해 나타내기.

수식으로 처리하기엔 매우 무겁게 느껴지는데, 그래도 재미삼아...

g2 셀 (분류)
=IF(SUM(N(FREQUENCY(IF(Rng_Data=1,MATCH(Rng_Kind&Rng_Type,Rng_Kind&Rng_Type,0)),MATCH(Rng_Kind&Rng_Type,Rng_Kind&Rng_Type,0))>0))>=ROW(A1),OFFSET($A$1,ROUNDUP(SMALL(IF(FREQUENCY(IF(Rng_Data=1,MATCH(Rng_Kind&Rng_Type,Rng_Kind&Rng_Type,0)),MATCH(Rng_Kind&Rng_Type,Rng_Kind&Rng_Type,0))>0,Indirect_Row),ROW(A1))/COLUMNS(Rng),0),0),"")

h2 셀 (항목)
=IF(SUM(N(FREQUENCY(IF(Rng_Data=1,MATCH(Rng_Kind&Rng_Type,Rng_Kind&Rng_Type,0)),MATCH(Rng_Kind&Rng_Type,Rng_Kind&Rng_Type,0))>0))>=ROW(A1),OFFSET($A$1,0,MOD(SMALL(IF(FREQUENCY(IF(Rng_Data=1,MATCH(Rng_Kind&Rng_Type,Rng_Kind&Rng_Type,0)),MATCH(Rng_Kind&Rng_Type,Rng_Kind&Rng_Type,0))>0,Indirect_Row),ROW(A1))-1,COLUMNS(Rng))+1),"")

배열수식이므로 입력시 Ctrl+Shift+Enter를 동시에 눌러야 한다.
그리고 위 수식은 파이어폭스에서는 제대로 보여지지 않는다. -_-

수식을 봐서 알겠지만, 엑셀의 함수 중첩 제한 때문에 이름을 아래 처럼 등록했다.


이름 내용
Point =Sheet1!$A$1
Rng =Sheet1!$B$2:$E$16
Indirect_Row =ROW(INDIRECT("1:"&COUNTA(Rng)))
Rng_Row =INT((Indirect_Row-1)/COLUMNS(Rng))+1
Rng_Column =MOD(Indirect_Row-1,COLUMNS(Rng))+1
Rng_Data =N(OFFSET(Point,Rng_Row,Rng_Column))
Rng_Kind =T(OFFSET(Point,Rng_Row,0))
Rng_Type =T(OFFSET(Point,0,Rng_Column))


Comments