핵심 요약
- 엑셀에서 하루는 1이고 시각은 그 안의 소수입니다. 1시간은 1/24(약 0.041667), 오후 3시는 0.625입니다.
HOUR는 0~23시,MINUTE는 0~59분,SECOND는 0~59초를 돌려줍니다. 반대로 시·분·초 숫자로 시각을 만들 때는TIME을 씁니다.HOUR는 24시간을 넘는 누적 시간을 세지 못합니다. 총 시간 수는=A2*24로 구합니다.
출퇴근 기록에서 출근 시(時)만 뽑아 지각 여부를 따지거나, 상담 시작 시각을 시간대별로 묶어 보거나, "14:35:20" 같은 기록에서 분만 따로 떼어 내야 할 때가 있습니다. 이럴 때 쓰는 함수가 HOUR, MINUTE, SECOND입니다.
이 글에서는 엑셀이 시각을 저장하는 방식부터 세 함수의 사용법, 시각을 거꾸로 조립하는 TIME 함수, 근무 시간 계산에서 자주 틀리는 부분까지 차례로 정리합니다.
엑셀은 시각을 소수로 저장합니다
엑셀은 날짜를 1900년 1월 1일을 1로 세는 정수(일련번호)로 저장하고, 시각은 하루 안에서 지난 비율, 즉 소수 부분으로 저장합니다. 자정은 0, 정오는 0.5입니다.
| 단위 | 하루 중 비율 | 엑셀 값 |
|---|---|---|
| 1시간 | 1/24 | 약 0.041667 |
| 1분 | 1/1,440 | 약 0.000694 |
| 1초 | 1/86,400 | 약 0.0000116 |
| 오전 8시 | 8/24 | 약 0.333333 |
| 2019-05-06 오후 3시 | 날짜 + 15/24 | 43591.625 |
날짜와 시각이 함께 든 셀은 정수 부분이 날짜, 소수 부분이 시각입니다. 표시 형식을 일반으로 바꿔 보면 아래 화면처럼 날짜 뒤에 숨은 숫자가 드러나고, 시각까지 들어 있다면 소수점 아래 값이 붙어 나옵니다.
HOUR 함수로 시(時) 뽑기
HOUR는 시각에서 시를 24시간제 숫자(0~23)로 돌려줍니다. 셀에 "오후 3:00"으로 보여도 결과는 15입니다.
| 인수 | 뜻 | 예시 |
|---|---|---|
| serial_number | 시를 뽑을 시각(시각이 든 셀, 소수 값, TIME 함수 결과) | B3, 43591.625 |
=HOUR(B3)
=HOUR(43591.625) → 15
=HOUR("11:30") → 11
날짜 없이 시각만 든 셀에도, 날짜와 시각이 함께 든 셀에도 똑같이 쓸 수 있습니다. 함수는 소수 부분만 보고 시를 계산하기 때문입니다. 상담 시작 시각을 시간대별로 묶어 세려면 보조 열에 =HOUR(B3)를 넣고 그 값으로 개수를 세면 됩니다.
단, 지각 여부처럼 분까지 따져야 하는 판단에 HOUR만 쓰면 9시 정각과 9시 5분이 똑같이 9로 나옵니다. 이런 경우는 =IF(B3>TIME(9,0,0),"지각","")처럼 시각끼리 직접 비교합니다.
MINUTE·SECOND 함수로 분과 초 뽑기
사용법은 HOUR와 같고 돌려주는 단위만 다릅니다.
=MINUTE("8:15:30") → 15
=SECOND("8:15:30") → 30
세 함수를 조합하면 시각을 다양하게 바꿀 수 있습니다. 예를 들어 =HOUR(B3)*60+MINUTE(B3)는 자정부터 지난 분 수를, =HOUR(B3)&"시 "&MINUTE(B3)&"분"은 "8시 15분" 같은 글자를 만듭니다.
TIME 함수로 시각 만들기
반대로 따로 떨어진 시·분·초 숫자를 하나의 시각으로 합칠 때는 TIME을 씁니다.
| 수식 | 결과 |
|---|---|
=TIME(5,23,36) | 오전 5:23:36 (약 0.224722) |
=DATE(2019,5,6)+TIME(15,0,0) | 2019-05-06 15:00 (43591.625) |
=B3+TIME(0,30,0) | B3에서 30분 뒤 |
TIME의 시 인수가 23을 넘으면 24로 나눈 나머지만 반영됩니다. =TIME(25,0,0)은 다음 날 1시가 아니라 그냥 오전 1:00입니다.
근무 시간 계산에서 막히는 부분
시각끼리 빼면 경과 시간이 나오지만, 몇 가지는 따로 처리해야 합니다.
- 시간 수로 바꾸기:
=C2-B2의 결과는 "8:30" 같은 시각 형식입니다. 8.5처럼 숫자 시간이 필요하면=(C2-B2)*24로 계산하고 표시 형식을일반으로 둡니다. - 자정을 넘긴 근무: 22:00에 출근해 06:00에 퇴근하면 뺄셈 결과가 음수가 되어
#####로 보입니다.=MOD(C2-B2,1)을 쓰면 8:00으로 계산됩니다. - 24시간이 넘는 합계: 일주일 근무 시간을 더한 결과가 30시간이어도 셀에는 6:00으로 보이고,
HOUR도 6을 돌려줍니다. Ctrl+1 >표시 형식탭 >사용자 지정에서[h]:mm을 지정하면 30:00으로 보이고, 숫자로는=합계*24를 씁니다.
시각은 소수라서 뺄셈 결과에 아주 작은 오차가 섞일 수 있습니다. 그래서 =C2-B2=TIME(8,30,0) 같은 비교가 FALSE로 나오거나, INT로 분 수를 자르면 1 작게 나오기도 합니다. 분 단위 비교가 중요한 표라면 =ROUND((C2-B2)*1440,0)처럼 분 수로 바꿔 반올림한 뒤 비교하면 안전합니다.
구글 스프레드시트에서는
구글 스프레드시트도 시각을 하루 안의 소수로 저장하며 HOUR, MINUTE, SECOND, TIME을 같은 형식으로 씁니다. 시각끼리 빼서 경과 시간을 구하는 방식과 *24로 시간 수를 만드는 방식도 같습니다. 24시간이 넘는 합계를 그대로 보이게 하려면 표시 형식을 경과 시간 형식(Duration)으로 바꿉니다.
자주 묻는 질문
HOUR 함수 결과가 오후인데도 3으로 나오지 않고 15로 나옵니다.
HOUR는 항상 24시간제 숫자를 돌려주므로 오후 3시는 15가 정상입니다. 12시간제 숫자가 필요하면 =MOD(HOUR(B3)-1,12)+1을 쓰고, 화면에 "오후 3:00"처럼 보이게만 하려면 표시 형식을 시간으로 바꿉니다.
시각을 입력했는데 0.625 같은 소수로 보입니다.
값은 정상이고 표시 형식이 일반으로 되어 있는 상태입니다. 홈 탭 > 표시 형식 목록에서 시간을 고르면 15:00:00처럼 보입니다.
HOUR 함수에 #VALUE! 오류가 납니다.
셀 값이 엑셀이 시각으로 해석할 수 없는 텍스트일 때 생깁니다. "15시 30분"처럼 글자가 섞인 값은 "15:30" 형태로 고쳐 입력하거나 TIME 함수로 다시 만들어야 합니다.
함께 보면 좋은 글: 엑셀 날짜 함수 DAY MONTH YEAR WEEKDAY, 엑셀 표시 형식과 셀 서식 정리
댓글
댓글 남기기