구글시트에서 한 셀에 출근시간(시,분), 퇴근시간(시, 분)을 같이 입력했습니다. 그리고 9시간 30분 이후에는 1시간씩 추가 수당을 지급해야 합니다. 즉, OT계산을 위한 근무시간을 계산하는 방법을 찾아 봤습니다. mid로 텍스트를 추출해서 계산하였습니다.
저는 위에처럼 09:00에 출근해서 21:30에 퇴근을 했다면, 09002130 숫자만 입력을 합니다.
맞춤 숫자 형식으로 00:00-00:00으로 지정해 놓으면, 위 처럼 입력을 하면 09:00-21:30 으로 표시됩니다.
이제 OT를 계산해 보겠습니다.
MID함수
=MID(문자열, 시작, 추출_길이) 입니다.
근무시간의 7번째부터 2자리를 추출하고 근무시간의 1번째부터 2자리를 추출해서 빼면 근무한 시간이 나옵니다.
=MID(A2, 7, 2) - MID(A2, 1, 2)
= 21 - 9
=12
그래서 추가시간은 12시간으로 나옵니다. 여기에 10을 빼주겠습니다. 9시간 29분까지는 추가시간 급여가 없으니까요.
=MID(A2, 7, 2) - MID(A2, 1, 2)
=3
시간은 3로 구했습니다.
이제 분을 계을 계산해 봅니다.
=MID(A2, 10, 2) - MID(A2, 3, 2)
=30-00
=30
즉 30분이 나옵니다. 30분 이상은 OT 1시간으로 계산해야 합니다.
뒤에 분에서 앞에 분을 뺏을 때, 30분보다 크거나 같은면 시간에서 -8를 해 주고
MID(A2, 10, 2) - MID(A2, 3, 2)>=30
30분보다 작으면 -9을 해주었습니다.
MID(A2, 10, 2) - MID(A2, 3, 2)<30
그리고 9시간29분이면, OT가 없으므로 공백으로 둡니다.
그래서 IFS를 사용했습니다.
IFS함수
=IFS(조건, 결과, 조건1, 결과1, 조건2, 결과2......)입니다.
근무시간이 9시간 29분이면 비워두고,
근무시간이 9시간 30분이상이면, 시간을 계산합니다.
=IFS
(근무시간이 9시간이거나 작고 분이 30분도 작으면 비워두고,
=IFS(AND(MID(A2,7,2)-MID(A2,1,2)<=9,MID(A2,10,2)-MID(A2,4,2)<30),
근무시간이 9시간이상이면, 시간을 뺀거에 -9를하고
MID(A2,7,2)-MID(A2,1,2)>9,MID(A2,7,2)-MID(A2,1,2)-9
분을 뺏을 때 30분이거나 이상이면 한시간을 덜 뺀다. -8
MID(A2,10,2)-MID(A2,4,2)>=30,MID(A2,7,2)-MID(A2,1,2)-8)
=IFS(AND(MID(A2,7,2)-MID(A2,1,2)<=9,MID(A2,10,2)-MID(A2,4,2)<30),"",MID(A2,7,2)-MID(A2,1,2)>9,MID(A2,7,2)-MID(A2,1,2)-9,MID(A2,10,2)-MID(A2,4,2)>=30,MID(A2,7,2)-MID(A2,1,2)-8)
결과입니다.
9시간 29분이하는 공백
9시간 30분이상은 OT 1시간 계산
앞에서 두자리 MID(A2, 1, 2)는 LEFT(A2,2)로 대신할 수 있으며
뒤에서 두자리 MID(A2, 10, 2)는 RIGHT(A2,2)로 대신할 수 있습니다.
'구글시트 > Sheets' 카테고리의 다른 글
[구글시트] 구글캘린더 동기화 4. 시간경과후 자동동기화 (2) | 2024.07.24 |
---|---|
[구글시트] 구글캘린더 동기화 3. 자동동기화 (0) | 2024.07.24 |
[구글시트]구글캘린더 동기화 2. 버튼 동기화 (0) | 2024.07.24 |
[구글시트] 구글캘린더 동기화 1. (1) | 2024.07.24 |
[구글시트] 인쇄시 격자선 보일 때 (0) | 2024.06.30 |
[구글시트] 날짜 형식 "월"을 영어로 (0) | 2024.06.30 |
[구글시트] 견적서 숫자를 한글로 표기하기 (1) | 2024.06.27 |
[구글시트] 숫자를 한글로 표현하기 (0) | 2024.06.24 |