논리/엑셀 프로그래밍

문자별 일련번호 부여

섬그늘 2008. 11. 13. 16:21

B

C

D

E

F

2

a

1

 

a

1

3

c

3

 

c

2

4

f

5

 

f

3

5

a

1

 

a

1

6

b

2

 

b

4

7

d

4

 

d

5

8

b

2

 

b

4

 

(사전순으로 일련번호를 매기고자 할 경우 : 표 B2:C8)

C2 =SUMPRODUCT(N(B$2:B$8<=B2),N(1/COUNTIF(B$2:B$8,B$2:B$8)))

; C3 잡아 아래로 데이타 수 만큼 복사하면 작업 끝.

 

이 수식은 해당 행의 문자열 보다 작은 문자열이 있는 행의 수의 역수를 더함으로써, 오름차순의 일련번호를 발생하게 합니다.

 

(나오는대로 일련번호를 매기고자 할 경우 : 표 E2:F8)

F2 =1

F3 =IF(COUNTIF(E$2:E2,E3)=0,MAX(F$2:F2)+1,VLOOKUP(E3,E$2:E2,2,FALSE))

; F3 잡아 아래로 데이타 수 만큼 복사하면 작업 끝.

 

이 수식은 해당 행의 문자열이 이제까지 나왔는지를 COUNTIF로 검사합니다. 만약 새로 등장한 문자열이라면 이제까지 카운터의 최대치(MAX)+1을 부여합니다. 그렇지 않고 예전 나왔던 문자열이라면 그걸 VLOOKUP으로 찾아 예전의 카운터를 부여합니다.