B |
C |
D |
E |
F |
G |
H |
I |
J |
K | |
2 |
|
원본 |
|
|
|
|
|
결과 |
|
|
3 |
|
이름 |
학력 |
경력 |
|
|
|
이름 |
학력 |
경력 |
4 |
8 |
홍길동 |
갑 |
활빈당 |
홍길동0 |
2 |
|
김춘추 |
축 |
화랑 |
5 |
9 |
|
을 |
|
홍길동0 |
2 |
|
|
인 |
나당연합 |
6 |
10 |
|
병 |
|
홍길동0 |
2 |
|
|
묘 |
|
7 |
4 |
장영실 |
정 |
해시계 |
장영실0 |
1 |
|
|
진 |
|
8 |
5 |
|
무 |
|
장영실0 |
1 |
|
장영실 |
정 |
해시계 |
9 |
6 |
|
기 |
|
장영실0 |
1 |
|
|
무 |
|
10 |
7 |
|
경 |
|
장영실0 |
1 |
|
|
기 |
|
11 |
11 |
홍길동 |
신 |
살수대첩 |
홍길동1 |
3 |
|
|
경 |
|
12 |
12 |
|
임 |
|
홍길동1 |
3 |
|
홍길동 |
갑 |
활빈당 |
13 |
13 |
|
계 |
|
홍길동1 |
3 |
|
|
을 |
|
14 |
14 |
|
자 |
|
홍길동1 |
3 |
|
|
병 |
|
15 |
0 |
김춘추 |
축 |
화랑 |
김춘추0 |
0 |
|
홍길동 |
신 |
살수대첩 |
16 |
1 |
|
인 |
나당연합 |
김춘추0 |
0 |
|
|
임 |
|
17 |
2 |
|
묘 |
|
김춘추0 |
0 |
|
|
계 |
|
18 |
3 |
|
진 |
|
김춘추0 |
0 |
|
|
자 |
|
원본데이타가 C4:E18에 있을 때,
F4 =IF(C4<>"",C4&COUNTIF(C$3:C3,C4),F3)
G4 =SUMPRODUCT(N(F$4:F$18<F4),1/COUNTIF(F$4:F$18,F$4:F$18))
B4 =SUMPRODUCT(N(G$4:G$18<G4))+COUNTIF(G$4:G$18,G4)-COUNTIF(G4:G$18,G4)
; F4:G4 잡아 데이타 행 만큼 아래로 복사, B4 잡아 마찬가지 아래로 복사, I4를 복사하여 I4:K18에 붙여넣으면 결과표 완성.
보조셀을 B, F, G열에 둔 것은 동명이인이 있어도 빠짐없이 찾기 위해서입니다. B열의 일련번호를 만들기 위해 F열에 이름+(같은 이름이 나온 회수)로 문자열을 만들고 그 순위를 G열에 매깁니다. G열을 참조하여 일련번호를 B열에 만들고 결과표에서는 ROW함수로 일련번호를 발생시켜 MATCH를 걸어 INDEX로 데이타를 일괄 가져옵니다.
'논리 > 엑셀 프로그래밍' 카테고리의 다른 글
행렬 곱하기 (0) | 2008.11.13 |
---|---|
가로/세로 조건을 만족하는 셀값 가져오기 (0) | 2008.11.13 |
두 열 비교, 중복 문자열 출력 (0) | 2008.11.13 |
괄호 안 차수 데이타 가져오기 (0) | 2008.11.13 |
중복순위를 하나로 계산, 순위 연속 출력 (0) | 2008.11.13 |