논리/엑셀 프로그래밍

한번에 여러 셀 불러오기 (F 11)

섬그늘 2008. 11. 14. 12:51

http://kin.naver.com/detail/detail.php?d1id=1&dir_id=1050202&eid=hEpezspK5VIQV38tPtEhjnMs7+gsksHg

 

 

B

C

D

E

F

G

2

5

B

1

 

 

 

3

3

A

4

 

 

 

4

0

A

1

 

 

 

5

1

A

1

 

F

1

6

7

C

2

 

 

5

7

10

F

1

 

 

9

8

2

A

3

 

 

10

9

11

F

5

 

 

11

10

13

F

10

 

 

 

11

12

F

9

 

 

 

12

6

B

7

 

 

 

13

8

C

5

 

 

 

14

14

F

11

 

 

 

15

9

C

8

 

 

 

16

4

A

5

 

 

 

 

C:D에 원본 데이타가 있을 때,

 

B2 =SUMPRODUCT(N(C$2:C$16<C2))+SUMPRODUCT((C$2:C$16=C2)*(D$2:D$16<D2))+SUMPRODUCT((C$1:C1=C2)*(D$1:D1=D2))

G5 =IF(COUNTIF(C$2:C$16,$F$5)<ROW()-ROW($G$5)+1,"",VLOOKUP(SUMPRODUCT(N(C$2:C$16<$F$5))+ROW(A1)-1,B$2:D$16,3,0))

 

B2, G5를 아래로 데이타 행 만큼 드래그 복사하시면 됩니다. 이로써 F5에 검색어를 입력하면 그에 딸린 데이타가 오름차순으로 G열에 나열됩니다. 즉 원본이 어떤 형태이든 (순서가 뒤죽박죽이든 중복이 있든) 빠짐 없이 해당 데이타를 출력합니다. B2는 C:D열 기준 오름차순의 순위이며 (속도 문제로) 배열수식을 쓰지 않으려면 한번은 이렇게 보조열을 써줘야 합니다. G5는 수식이 길어졌습니다만 =IF(다 나왔으면 빈칸, VLOOKUP(검색어가 시작되는 B열의 행, B:D,3,0) 의 간단한 구조입니다.