자동으로 근무시간 계산하는 방법에 대해 설명하도록 하겠다.
수식은 :
=IF(IF(HOUR(C4)=0,IF(HOUR(D4)=0,0,1),1)=0, 0, (((HOUR(D4)*60+MINUTE(D4)) - (HOUR(C4)*60+MINUTE(C4))) - MOD((HOUR(D4)*60+MINUTE(D4)) - (HOUR(C4)*60+MINUTE(C4)),30)-IF(E4="O",60,0))/60)
※ 입력된 시간을 분으로 변경후에 다시 시간으로 변경하는 로직
※ 출근을 하지 않으면 출퇴근에 00:00 으로 기재
※ 출퇴근 시간의 셀서식은 hh:mm 으로 지정, 나머진 일반으로 유지
1. (HOUR(D4)*60+MINUTE(D4)) - (HOUR(C4)*60+MINUTE(C4))
-> 13:00 일 경우 HOUR(13)*60 + MINUTE(0) = 780
09:15 일 경우 HOUR(9)*60 + MINUTE(15) = 555
--> 수식의 결과 225분.
2. MOD((HOUR(D4)*60+MINUTE(D4)) - (HOUR(C4)*60+MINUTE(C4)),30)
-> 위의 결과를 이용해서 30분 단위의 나머지값을 구함.
30분 단위로 계산을 하기 위해 나머지 값을 총근무한 분에서 빼기위함.
ex) 총 근무시간이 2시간 10분(130분)이라면 30분 단위에서 10분이 제외된 120분으로 계산(130/30 에서의 나머지 10)
--> MOD(225, 30) 의 결과 15
3. -IF(E4="O",60,0)
-> 근무시간(분)에서 나머지 결과를 뺀 후 휴게시간도 뺌.
점심시간을 보냈다면 60분을 빼고 아니면 0분을 뺌.
점심시간을 근무시간에 포함하고 싶으면 알파벳 "X"를 표기하고,
점심시간을 근무시간에서 제외하고 싶으면 알파벳"O"를 입력하면 된다.
4. 1-2-3의 결과/60
-> 총근무시간(분)에서 60으로 나눔.
분에서 시간으로 변환하기 위함.
5. IF(HOUR(C4)=0,IF(HOUR(D4)=0,0,1),1)=0
-> 출퇴근이 0이면 휴게시간과 관계없이 0을 리턴해주기 위함.
출근시간이 0이면 0, 아니면 1을 리턴
출근시간이 0일때 퇴근시간이 0이면 0을 리턴, 아니면 1을 리턴