http://kin.naver.com/detail/detail.php?d1id=1&dir_id=1050202&eid=qybQHztXBErWn7gpHy0TwmWJLcRDrHI0
|
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
1 |
시작 |
끝 |
평일 |
|
|
|
|
|
|
|
말 |
휴 |
|
2008-03-01 |
삼일절 |
토 |
2 |
2008-03-01 |
2008-03-02 |
0 |
|
1 |
6 |
7 |
2 |
2 |
-1 |
2 |
0 |
|
2008-05-05 |
어린이날 |
월 |
3 |
2008-03-21 |
2008-03-27 |
5 |
|
6 |
5 |
4 |
2 |
0 |
0 |
2 |
0 |
|
2008-05-12 |
석가탄신일 |
월 |
4 |
2008-05-01 |
2008-05-13 |
7 |
|
12 |
4 |
2 |
2 |
0 |
1 |
4 |
2 |
|
2008-06-06 |
현충일 |
금 |
5 |
2008-09-12 |
2008-09-16 |
2 |
|
4 |
5 |
2 |
2 |
0 |
0 |
2 |
1 |
|
2008-08-15 |
광복절 |
금 |
6 |
2008-03-27 |
2008-12-31 |
193 |
|
279 |
4 |
3 |
2 |
0 |
39 |
80 |
7 |
|
2008-09-13 |
추석 |
토 |
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-09-14 |
추석 |
일 |
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-09-15 |
추석 |
월 |
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-03 |
개천절 |
금 |
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-12-25 |
기독탄신일 |
목 |
E2 =DATEDIF(A2,B2,"d") ; 경과 일수 (전체일수 -1). 이렇게 뽑으면 별도 서식 지정하지 않아도 됨.
F2 =WEEKDAY(A2,2) ; 시작일의 요일 (옵션 2이면 월=1, 일=7. 일요일이 가장 오른쪽에 있는 달력)
G2 =WEEKDAY(B2,2) ; 끝일의 요일
H2 =2-N(F2=7) ; 첫 주의 토일 수
I2 =SIGN(G2-6)+1 ; 마지막 주의 토일 수
J2 =(B2-A2-7-(G2-F2))/7 ; 처음 마지막 주를 제외하고 통으로 7일이 있는 주의 수
K2 =H2+I2+J2*2 ; 기간 중 토요일, 일요일의 수 합계
L2 =SUMPRODUCT((N$1:N$10>=A2)*(N$1:N$10<=B2)*(WEEKDAY(N$1:N$10,2)<6))
C2 =E2+1-K2-L2 ; 결과 (전체 일수 - 토일 수 - 토일 아닌 휴일 수)
C2:L2 잡아 아래로 드래그 복사하면 표가 완성됩니다. 한국휴일을 엑셀이 친절하게 인식해주질 않기 때문에 예시와 같이 N열에 기간에 맞는 공휴일 날짜를 나열해 두고(O:P열은 참고용, 없어도 됨) 토일과 중복 여부를 L열에서 검사합니다. 위 표를 마우스로 긁어 엑셀시트에 붙인 후 해당 위치로 이동, 수식 역시 마우스로 긁어 해당 주소 수식 창에 붙인 후 보시면 이해가 보다 쉽습니다. 위 수식을 모두 C2 한 셀에 밀어 넣을 수 있긴 합니다만 복잡해져서 실전적이지 않습니다.
'논리 > 엑셀 프로그래밍' 카테고리의 다른 글
CMS 단가 (CBM + 열처리) (0) | 2008.11.14 |
---|---|
시간 형식을 연산, 분으로 표시 (24:20) (0) | 2008.11.14 |
주민번호를 27 Jul 1999 로 표시 (0) | 2008.11.14 |
업종, 연구소 기준에 따라 최종 평점 계산 (0) | 2008.11.14 |
날짜,시간 간격을 n시간m분으로 환산 (0) | 2008.11.14 |