1. FAQ
  2. 엑셀(Excel)
  3. AfterEffects
  4. Premiere
  5. Photoshop
  6. ETC

이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.

[레벨:30]아별

2013.05.31 11:32

신강현님..

혹시 배열 수식을 알고 계신가요?

배열 수식에 대한 정보는 아래 게시물을 참고하세요..

http://www.abyul.com/zbxe/64537


암튼.. 수식에 대해서 부연 설명을 드리겠습니다.


우선.. 데이터를 정렬하는 수식 전체입니다.


{ =INDEX($F$2:$F$12,SMALL(IF(상품목록<>"",ROW(상품목록)-ROW($H$2)+1,9999999999),ROW(A1))) }


요약하면 아래와 같죠..

전체 상품목록($F$2:$F$12)에서 몇번째 값을 갖고 오라는 수식이구요..

몇번째는 값이 들어있는 것만 골라내야합니다. 뒤에서 배열 수식을 설명할께요..

=INDEX($F$2:$F$12, 몇번째)


몇번째에 해당하는 수식이 아래입니다. 값이 있는 것만 골라내는 배열 수식이지요..

SMALL(IF(상품목록<>"",ROW(상품목록)-ROW($H$2)+1,9999999999),ROW(A1))


위 수식을 요약해보면..

SMALL( 행번호로변환배열 ,ROW(A1))

ROW(A1)은 아래로 수식을 복사하면 숫자 1부터 1씩 증가하겠죠.. 1,2,3,4

행번호로변환배열에 해당하는 수식은 아래와 같습니다.

IF(상품목록<>"",ROW(상품목록)-ROW($H$2)+1,9999999999)

상품목록에 있는 셀 값들을 하나씩 비교해가면서 배열을 만들어줍니다.

첫번째 값인 "독일주전자"가 값이 ""가 아니니.. "독일주전자"셀의 행 번호(ROW(상품목록))를 갖고 오겠죠.. 2-2+1 = 1

두번째, 세번째는 공백이니까.. 9999999999값을 가질꺼고.. 

네번째 "하우링 스피커"셀은 공백이 아니니까.. "하우링 스피커"의 행번호 - "독일주전자"의 행번호 + 1 해서.. 5-2+1=4


행번호로변환배열에서 차례로 작은 숫자를 갖고오는겁니다.  즉, 값이 있는 행번호를 작은 순서대로 차례로 갖고 오는 거죠..

행번호로변환배열부분을 수식입력줄에서 마우스로 선택한다음, F9를 누르면 아래와 같은 결과를 볼 수 있습니다.

아래 배열에서 작은 순서대로 갖고 오면, 1, 4, 5, 6, 9, 11, 9999999999이 되겠죠..

{1;9999999999;9999999999;4;5;6;9999999999;8;9999999999;9999999999;11}



정리해보죠..

전체 수식을 정리해보면 아래와 같죠..

핵심은 행번호로변환배열인겁니다.

=INDEX($F$2:$F$12, SMALL( 행번호로변환배열 ,ROW(A1)) )


수식을 값들로 확인해보면..

=INDEX($F$2:$F$12, SMALL( {1;9999999999;9999999999;4;5;6;9999999999;8;9999999999;9999999999;11} ,1) )

위 수식에서 일부를 다시 값으로 바꿔보면..

=INDEX($F$2:$F$12,  {1;4;5;6;8;11;9999999999;9999999999;9999999999;9999999999;9999999999} )



첫번째 항목은 배열에서 가장 작은 숫자 1을 가져와서.. 아래와 같이 됩니다.

=INDEX($F$2:$F$12, 1 )


두번째는 2번째로 작은 값인 숫자 4를 가져와서..

아래와 같이 되구요..

=INDEX($F$2:$F$12, 4 )


이해가 되셨으면 좋겠네요..


문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)