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) 의 간단한 구조입니다.
'논리 > 엑셀 프로그래밍' 카테고리의 다른 글
기록 점수 계산 (50m달리기 vs. 팔굽혀 매달리기) (0) | 2008.11.14 |
---|---|
빈셀 제외 조합 자동 출력, 해당 승수 구하기 (소소닭) (0) | 2008.11.14 |
매달 2번째 목요일 구하기 (0) | 2008.11.14 |
SUMIF 유동참조 (C매장 맥콜) (0) | 2008.11.14 |
전적 통계 (A:B = 2:1) (0) | 2008.11.14 |