논리/엑셀 프로그래밍

매달 2번째 목요일 구하기

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

http://kin.naver.com/detail/detail.php?d1id=1&dir_id=1050202&eid=6uRvKJbFvzMqUVHbwv+xtPNo4gJhCXci

 

 

B

C

D

E

F

G

H

I

2

 

 

둘째

 

 

 

휴일목록

 

3

목요일

최종답

 

 

2008-03-01

삼일절

4

2008

1

10

10

3

3

2008-05-05

어린이날

5

2008

2

14

14

 

 

2008-05-12

석가탄신일

6

2008

3

13

13

 

 

2008-06-06

현충일

7

2008

4

10

10

 

 

2008-08-15

광복절

8

2008

5

8

8

 

 

2008-09-13

추석

9

2008

6

12

12

 

 

2008-09-14

추석

10

2008

7

10

10

 

 

2008-09-15

추석

11

2008

8

14

14

 

 

2008-10-03

개천절

12

2008

9

11

11

 

 

2008-12-25

기독탄신일

13

2008

10

9

9

 

 

 

 

14

2008

11

13

13

 

 

 

 

15

2008

12

11

11

 

 

 

 

 

F4 =WEEKDAY(DATE(B4,C4,1),1)

G4 =IF(F4<=5,5-F4+1,8-F4+5)

D4 =IF(WEEKDAY(DATE(B4,C4,1),1)<=5,5-WEEKDAY(DATE(B4,C4,1),1)+1,8-WEEKDAY(DATE(B4,C4,1),1)+5)+7

E4 =IF(COUNTIF(H$3:H$12,DATE(B4,C4,D4)),7,0)+D4

 

D4:E4 잡아 아래로 원하는 만큼 복사해 넣으시면 됩니다. 수식을 간단히 설명하면, F4는 그 달 1일의 요일을 나타냅니다. WEEKDAY함수의 옵션 1을 쓰면 일요일이 1, 토요일이 7이 되지요. 그걸 이용해 G4에서 매월 첫째 목요일을 계산합니다. 1일의 요일이 목요일 보다 작거나 같으면 5-요일+1, 이미 넘었으면 8-요일+5로 계산됩니다. D4에서는 그 첫 목요일에 7을 더해 둘째 목요일을 계산합니다. 즉 길어보이지만 D4 =G4+7의 구조에 F4:G4를 밀어넣어 정리한 것에 지나지 않습니다. 이제 공휴일 목록에 그 날짜가 있는지 확인해서 7을 더하든 말든 한 것이 E4인 바, 올해 휴일 중 둘째 목요일은 없네요. 만약 첫째 월요일이 대상이었다면 5월5일, 5월12일이 강적이었을 겁니다.