跳到主要內容跳到頁尾

時間函式整理:TIME、HOUR、MINUTE、SECOND、TIMEVALUE 與打卡工時

6 分鐘閱讀Lv.2 中級摘要與日期

TIME 組時間,HOUR、MINUTE、SECOND 拆時間,TIMEVALUE 把文字時間轉成數字。附時間是一天的分數的換算表,以及打卡紀錄算工時、跨午夜、加總超過 24 小時的做法。

發布 更新

文章目錄

打卡紀錄是 09:15,下班是 18:40,我想知道今天上了幾個小時的班。這時候會用到 TIME、HOUR、MINUTE、SECOND 和 TIMEVALUE 這一組時間函式。

NOW 在 日期與時間入門 介紹過了,這邊不重講。簡單說,NOW() 的整數部分是今天,小數部分就是現在的時間。坦白說,這組函式我自己最常用的是 HOUR 跟 TIMEVALUE,SECOND 幾乎沒用過,不過整理成工具書放著,需要的時候回來查。

怎麼選

要做的事用哪個回傳
用時、分、秒三個數字組出時間TIME0 到 1 之間的小數
取出時間的小時HOUR0 到 23
取出時間的分鐘MINUTE0 到 59
取出時間的秒SECOND0 到 59
把「14:35:48」這種文字變成時間TIMEVALUE0 到 1 之間的小數

時間是一天的分數

日期是整數,時間是小數,代表一天走了多少比例。中午 12:00 是 0.5,早上 6:00 是 0.25。這個換算後面每個函式都會用到,先放一張表:

時間一天的分數算法
1 小時0.04166671 / 24
1 分鐘0.0006944441 / 1440
1 秒0.00001157411 / 86400
9:300.3958339.5 / 24
14:35:480.60819452548 / 86400

14:35:48 是 14 × 3600 + 35 × 60 + 48 = 52548 秒,再除以一天的 86400 秒,就是 0.608194。

組時間

TIME

TIME 用時、分、秒三個數字組出一個時間。

語法:

  • 時:小時。
  • 分:分鐘。
  • 秒:秒。

三個參數都要填,沒有選填。

Google 試算表公式
fx

組出 9:30:00

=TIME(9, 30, 0)

先手算:9.5 小時除以 24,等於 0.395833。儲存格會自動套上時間格式,所以你看到的是 9:30 這樣的時間,把格式改成「格式」>「數值」>「數字」才會看到 0.395833。

跟 DATE 一樣,分、秒超過 59 時會自動進位:

Google 試算表公式
fx

75 分鐘進位成 1 小時 15 分

=TIME(8, 75, 0)

結果是 9:15,也就是 0.385417。我個人滿喜歡拿這個特性算「幾點幾分之後再加 N 分鐘」,直接把分鐘加大就好。

小時超過 23 的話,會從 0 重新算起,所以 得到的是 1:00,不會多出一天。要加天數,直接用日期加。

HOUR

HOUR 取出時間的小時,結果是 0 到 23 的整數。

語法:

  • 時間:時間,或是帶日期的日期時間,日期的部分會被忽略。
Google 試算表公式
fx

取出小時

=HOUR(TIME(14, 35, 48))

結果是 14。HOUR 是 24 小時制,不會回傳 1 到 12 加上午下午。想分上午下午,自己判斷:

Google 試算表公式
fx

12 點以前算上午

=IF(HOUR(A2) < 12, "上午", "下午")

A2 是 14:35:48 的話,結果是「下午」。

也可以直接用在日期時間上。日期加時間,就是日期時間,在 A2 輸入:

Google 試算表公式
fx

把日期和時間相加,得到日期時間

=DATE(2026, 10, 11) + TIME(14, 35, 48)

A2 的值是 46306.608194, 照樣得到 14。

MINUTE

MINUTE 取出時間的分鐘,結果是 0 到 59。

語法:

  • 時間:時間或日期時間。
Google 試算表公式
fx

取出分鐘

=MINUTE(TIME(14, 35, 48))

結果是 35。

MINUTE 只回傳分鐘欄位,14:35 得到 35,不含前面的 14 小時與秒。14:35:48 換成當日累計分鐘是 14 × 60 + 35 + 48/60 = 875.8;HOUR(A2)*60+MINUTE(A2) 會少掉 0.8 分鐘。

若 A2 只有時間值,可乘 1440;若沿用上一節含日期的 A2,要先取一天的小數部分,不能把整個日期序號乘 1440:

Google 試算表公式
fx

含日期時只取當日時間,再換成分鐘

=MOD(A2, 1)*1440

TIME(14,35,48)*1440 與 MOD(DATE(2026,10,11)+TIME(14,35,48),1)*1440 的結果都是 875.8。這是當日的時間,不是跨日經過時數。

SECOND

SECOND 取出時間的秒,結果是 0 到 59。

語法:

  • 時間:時間或日期時間。
Google 試算表公式
fx

取出秒

=SECOND(TIME(14, 35, 48))

結果是 48。

文字轉時間

TIMEVALUE

TIMEVALUE 把「看起來像時間」的文字轉成一天的分數,跟日期那邊的 DATEVALUE 是同一類的函式。

語法:

  • 時間字串:試算表看得懂的時間格式,例如 "14:35:48" 或 "14:30",用雙引號包起來,或參照一個文字儲存格。
Google 試算表公式
fx

文字 14:35:48 轉成一天的分數

=TIMEVALUE("14:35:48")

先手算:52548 / 86400 = 0.608194,你應該會得到 0.608194!

從系統匯出來的打卡時間常常是文字,靠左對齊,不能直接相減。轉成分數之後就能算了,例如把 "1:30" 換成分鐘:

Google 試算表公式
fx

1 小時 30 分等於幾分鐘

=TIMEVALUE("1:30") * 1440

結果是 90。這邊要記得一天有 1440 分鐘,乘 24 的話是換成小時。

打卡紀錄算工時

我手上有三天的打卡紀錄,第三筆是夜班,下班時間比上班時間「小」:

ABC
1上班下班工時(小時)
28:5217:48
39:1518:40
422:006:00

下班減上班,就是這天工作了一天的幾分之幾。前兩列直接減:

Google 試算表公式
fx

工時換成小時,取到小數 2 位

=ROUND((B2 - A2) * 24, 2)

先把結果欄設為「格式」>「數值」>「數字」,別沿用打卡欄的時間格式。前兩筆的數值是 C2 8.93(8 小時 56 分)、C3 9.42(9 小時 25 分)。

第三列如果也這樣寫,6:00 減 22:00 是 -16 小時,因為試算表不知道下班是隔天。跨午夜的處理是用 MOD 對 1 取餘數,把負數補回一整天:

Google 試算表公式
fx

跨午夜也能算的工時

=ROUND(MOD(B2 - A2, 1) * 24, 2)

C4 是 8,C2、C3 結果不變。這個版本只適合「僅有時刻、已知單次班別少於 24 小時」的情況;下班小於上班會被解讀成隔天,不能拿它偵測漏打卡或順序填錯。

若每筆有完整日期時間,就直接用結束減開始,再乘 24。2026/10/11 00:00 到隔天 00:00 是 24 小時、到隔天 02:00 是 26 小時;但 24 小時的差再套 MOD(...,1) 會變成 0。跨日、24 小時以上與漏打卡資料,應先補齊日期並驗證前後順序,不要一律取餘數。

同一天 2026/10/11 的反序輸入也一樣:開始 18:00、結束 09:00,直接相減是 −9 小時,套 MOD 卻變成正的 15 小時。既然已填日期,這個負值應先當成順序或資料問題核對,不要用 MOD 把它包成看似正常的班別。

想要「8 小時 56 分」這種拆開來的寫法,就用 HOUR 和 MINUTE 去拆差值:

Google 試算表公式
fx

工時拆成小時和分鐘

=HOUR(MOD(B2 - A2, 1)) & " 小時 " & MINUTE(MOD(B2 - A2, 1)) & " 分"

C2 得到「8 小時 56 分」,C3 是「9 小時 25 分」。

加總超過 24 小時

三天的工時加起來是 8:56 + 9:25 + 8:00 = 26:21。直接 SUM 之後,時間格式只顯示 24 小時以內的部分,26:21 會顯示成 2:21。要看總時數有兩個做法:

  • 乘 24 變成小時的數字:,結果是 26.35。
  • 用 TEXT 加上方括號格式:,結果是 26:21。

方括號的 [h] 代表「累計小時,不要超過 24 就歸零」。用儲存格格式的話,是「格式」>「數值」>「自訂數字格式」,輸入 [h]:mm。

這兩個算式用 SUMPRODUCT 讓 MOD 一次處理整個範圍。如果覺得難讀,也可以在 C 欄先算好每一天的工時再加總。

請假如果橫跨多天,還要排除午休、週末與假日,可以接著看 跨日請假時數計算,用每天上下午班段與請假區間的重疊時間來算。

下次拿到匯出的打卡檔,先用 TIMEVALUE 確認是不是文字,再套工時算式看看吧!

我是喜特先生,Mr. Sheet,我們下個教學見!

分享:
#時間#工時#打卡
喜特先生 Mr. Sheet

喜特先生 Mr. Sheet

數據分析師/商業分析師

八年工作經驗,跨不同業界解決數據需求。做過的案例都整理在作品集。

接下來可以

相關文章

查看所有文章

留言討論

共 0 則留言

訂閱電子報,新文章上線就通知你

免費,隨時可取消。

送出即表示同意服務條款與隱私權政策。