http://kin.naver.com/detail/detail.php?d1id=1&dir_id=1050202&eid=YDw5QJIr/GRD4EqdzQrulsIlf9dxo2Za
|
A |
B |
C |
D |
E |
F |
G |
H |
I |
1 |
18:00 |
22:00 |
240 |
|
0.75 |
0.917 |
0.917 |
0.167 |
240 |
2 |
22:15 |
24:20:00 |
125 |
|
0.927 |
1.014 |
1.014 |
0.087 |
125 |
3 |
24:30:00 |
2:10 |
100 |
|
1.021 |
0.09 |
1.09 |
0.069 |
100 |
4 |
2:20 |
3:20 |
60 |
|
0.097 |
0.139 |
0.139 |
0.042 |
60 |
5 |
3:50 |
5:50 |
120 |
|
0.16 |
0.243 |
0.243 |
0.083 |
120 |
C1 =(IF(VALUE(B1)>=E1,0,1)+VALUE(B1)-VALUE(A1))*60*24
C1의 수식 구조 :
E1 =VALUE(A1) ; 시작시간의 엑셀 값
F1 =VALUE(B1) ; 끝 시간의 엑셀 값
G1 =IF(F1>=E1,0,1)+F1 ; 끝이 시작 보다 빠른 시간이면 1을 더함
H1 =G1-E1 ; 고쳐진 시작-끝 차이 (엑셀 값)
I1 =H1*60*24 ; 엑셀 값을 분으로 바꿈
E1:H1을 I1에 밀어 넣어 정리하면 C1이 됩니다. 즉, C1은 A1, B1의 함수이고 E:H열은 설명을 위해 보인 것이고 실전에서는 필요 없습니다. C1 잡아 아래로 드래그 복사하시면 됩니다. (예시의 24:30:00은 24:30만 입력하면 자동으로 그리 표시됩니다. 셀 서식-시각에서 hh:mm을 선택하면 0:30으로 표시될 겁니다.)
예시에서 보시다시피, "18:00" 이라고 입력하면 엑셀은 시간으로 인식합니다. 정확하게는 1900년 18:00 로 인식하지요. 엑셀에 내장되어 있는 시계함수는 1900년 1월1일을 정확히 1로 간주합니다. 그리고 날짜가 증가하면 1씩 더하게 되지요. 그래서 엑셀에서 =VALUE(TODAY())라고 입력하면 39535 식의 수치가 뜹니다. 1900년 1월1일 부터 4만 일 정도 흘렀다는 뜻입니다.
따라서 엑셀이 다루는 모든 날짜, 시간은 VALUE 함수를 씌워 숫자로 다룰 수 있습니다. 1이 24시간에 해당하므로 거기에 24*60을 곱해주면 분으로 환산된 수치가 찍히겠지요 (I1 수식). 시작 시간, 끝 시간을 현실에서 쓰는 대로 입력했을 때 야근인 경우 시작시간이 더 클 테니 그걸 검사하여 필요할 경우 24시간을 더해주면 됩니다 (G1 수식).
'논리 > 엑셀 프로그래밍' 카테고리의 다른 글
누적값으로 비례배분 구간 %구하기 (0) | 2008.11.14 |
---|---|
CMS 단가 (CBM + 열처리) (0) | 2008.11.14 |
시작 끝 날짜 지정, 토, 일, 공휴일을 제외한 평일 수 계산 (0) | 2008.11.14 |
주민번호를 27 Jul 1999 로 표시 (0) | 2008.11.14 |
업종, 연구소 기준에 따라 최종 평점 계산 (0) | 2008.11.14 |