Tuesday, October 23, 2007
엑셀, 초를 시분초로 나타내기; Excel VBA 함수로 Sec to HHMMSS
엑셀에서 타이머 등의 경과 시간을 초로 입력하고, 그 초를 시분초로 나누어 표현하는 함수를 만들었습니다. 엑셀에 이런 기능을 하는 내장함수를 찾아보았는데 없더군요. 제가 못 찾은 것일 수도 있고...
이것은 절대 시간이 아니라 그냥 단순한 정수로 된 초를 시분초로 바꾸는 것입니다. "스톱워치"와 비슷한 것입니다.
우선 아래의 엑셀VBA함수를 엑셀 비베 에디터에 입력해야 합니다. 복사하여 붙여 넣어도 됩니다.
(엑셀에서 Alt+F11키를 눌러, 비베 에디터를 실행하고, 비베 에디터 메뉴의, "삽입 > 모듈"을 선택한 후, 다음 코드를 붙여 넣습니다.)
그런 후 이제 엑셀 시트의 셀에서 아무 숫자나 정수로 입력합니다.
예를 들어 A1셀에 59 라는 정수 숫자를 입력하고 다른 셀에
=secToHHMMSS(A1)
이렇게 입력하면 00:00:59 라고 출력됩니다.
A1셀에 322 라고 입력하면 아까 함수를 입력한 셀의 값이 00:05:22 이렇게 변할 것입니다. 322초가 00:05:22 즉 5분22초로 변환된 것입니다.
A1셀에 78431 이라고 입력하면 21:47:11 이렇게 21시간 47분 11초로 나타날 것입니다.
이것은 절대 시간이 아니라 그냥 단순한 정수로 된 초를 시분초로 바꾸는 것입니다. "스톱워치"와 비슷한 것입니다.
우선 아래의 엑셀VBA함수를 엑셀 비베 에디터에 입력해야 합니다. 복사하여 붙여 넣어도 됩니다.
셀에 입력된 초(Sec)를, 시 분 초로 표현 비베 함수
(엑셀에서 Alt+F11키를 눌러, 비베 에디터를 실행하고, 비베 에디터 메뉴의, "삽입 > 모듈"을 선택한 후, 다음 코드를 붙여 넣습니다.)
Function secToHHMMSS(Secs As Long) As String
Dim H, M, S
H = Int(Secs / 3600)
M = Int(Secs / 60) Mod 60
S = Int(Secs Mod 60)
secToHHMMSS = Format(H, "00") & ":" & Format(M, "00") & ":" & Format(S, "00")
End Function
Dim H, M, S
H = Int(Secs / 3600)
M = Int(Secs / 60) Mod 60
S = Int(Secs Mod 60)
secToHHMMSS = Format(H, "00") & ":" & Format(M, "00") & ":" & Format(S, "00")
End Function
그런 후 이제 엑셀 시트의 셀에서 아무 숫자나 정수로 입력합니다.
예를 들어 A1셀에 59 라는 정수 숫자를 입력하고 다른 셀에
=secToHHMMSS(A1)
이렇게 입력하면 00:00:59 라고 출력됩니다.
A1셀에 322 라고 입력하면 아까 함수를 입력한 셀의 값이 00:05:22 이렇게 변할 것입니다. 322초가 00:05:22 즉 5분22초로 변환된 것입니다.
A1셀에 78431 이라고 입력하면 21:47:11 이렇게 21시간 47분 11초로 나타날 것입니다.
tag: office
엑셀 Excel | 워드 Word | VBA 매크로 | 오피스
<< Home