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일이 강적이었을 겁니다.
'논리 > 엑셀 프로그래밍' 카테고리의 다른 글
빈셀 제외 조합 자동 출력, 해당 승수 구하기 (소소닭) (0) | 2008.11.14 |
---|---|
한번에 여러 셀 불러오기 (F 11) (0) | 2008.11.14 |
SUMIF 유동참조 (C매장 맥콜) (0) | 2008.11.14 |
전적 통계 (A:B = 2:1) (0) | 2008.11.14 |
옷치수 근사치 순서로 출력 (0) | 2008.11.14 |