논리/엑셀 프로그래밍

기록 점수 계산 (50m달리기 vs. 팔굽혀 매달리기)

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

http://kin.naver.com/detail/detail.php?d1id=1&dir_id=1050202&eid=PcnRgunVbnaxf9rZ45s2Eu/0TVVhONcc

 

표를 아래와 같이 엑셀이 인식할 수 있는 형태로 바꿔줘야 합니다. 성별이 있어야 엑셀이 적절한 범위를 찾을 것이고, 그 적절한 범위 역시 MATCH함수를 유동적으로 써야 합니다. 더구나 달리기 따위 오름차순, 매달리기 따위 내림차순이 혼재해 있으므로 엑셀에 그 옵션을 지정해줘야 하지요. 즉, 간단한 수식으로는 어렵습니다. 아래를 참고하여 이해하신 후 응용해 보세요. (표를 마우스로 긁어 엑셀시트에 붙인 후 수식 역시 마우스로 긁어 복사, 해당 주소의 수식 창에 붙인 후 보시면 이해하기 보다 쉽습니다.)

 

 

B

C

D

E

F

G

H

I

J

K

L

M

N

O

2

 

점수

50

팔굽

윗몸

멀리

앞굽

오래

 

이름

성별

종목

기록

점수

3

 

 

1

-1

-1

-1

-1

1

 

강민석

0

오래

6.48

5

4

5

0

999

999

999

999

0

 

권두현

0

앞굽

7.5

2

5

 

4

6.9

37

53

239

19.9

6.49

 

김유정

1

멀리

183

4

6

 

3

7.9

27

44

216

13.8

8.02

 

김재원

0

윗몸

43

3

7

 

2

8.7

17

35

194

7.7

9.14

 

김정희

1

50

8.7

4

8

 

1

9.5

7

27

171

1.6

10.3

 

김현호

0

팔굽

7

1

9

5

0

999

999

999

999

0

 

김혜린

1

팔굽

18

5

10

 

4

8.6

17

40

183

23.7

6.07

 

 

 

 

 

 

11

 

3

9.4

10

32

163

17.5

7.09

 

 

 

 

 

 

12

 

2

10.3

2

23

143

11.3

8.11

 

 

 

 

 

 

13

 

1

11.2

0

15

123

5.3

9.13

 

 

 

 

 

 

O3 =6-MATCH(N3,INDIRECT(ADDRESS(4+L3*5,MATCH(M3,D$2:I$2,0)+COLUMN(C$2))):INDIRECT(ADDRESS(8+L3*5,MATCH(M3,D$2:I$2,0)+COLUMN(C$2))),HLOOKUP(M3,D$2:I$3,2,0))

 

O3 잡아 아래로 데이타 행 만큼 채우기 하시면 됩니다. L열에 남학생은 0, 여학생은 1로 지정해 주셔야 합니다.) 이 수식은 =6-MATCH(N3,범위,옵션) 의 구조이며, 먼저 종목의 위치를 MATCH로 구해(초록색) 그 열의 범위를 INDIRECT 유동참조로 구합니다. 종목으로 옵션을 HLOOKUP으로 구한 후 기록의 위치를 구한 후 6에서 빼 주면 해당 점수가 찍히게 됩니다.