KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

如何在 Excel 中自動於數字之間插入冒號,將其轉換為時間格式?

作者Xiaoyang修改日期

當您在 Excel 工作表儲存格中輸入時間值時,每次都要手動輸入冒號(例如必須輸入「12:34」而非直接輸入「1234」)可能相當麻煩。使用者通常希望能有更便捷的方式,快速將數字自動轉換為標準的時間格式。本指南介紹了幾種實用方法,可自動在數字間插入冒號並套用 Excel 的時間格式,無論您處理的是排程、時間戳記還是活動持續時間記錄,都能有效節省時間並減少資料輸入錯誤。


使用公式在數字之間插入冒號以轉換為時間格式

如果您已有一欄數字,並希望將其自動轉換為時間格式(例如將「915」轉換為「09:15」,或將「121530」轉換為「12:15:30」),無需手動輸入冒號,Excel 公式就能輕鬆完成這項轉換。當您需要直接處理工作表中現有的大量數值資料時,這種方法尤其理想。

以下提供兩種公式解決方案,具體取決於您數值資料的位數。請務必根據資料類型選擇對應公式,以達最佳效果。

如果數字包含 3 或 4 位數,可使用此公式:

在相鄰儲存格中輸入此公式(例如,若您的數字位於 A1 儲存格,則在 B1 輸入公式):

=TIME(LEFT(A1,LEN(A1)-2),RIGHT(A1,2),0)

輸入公式後,按下 Enter 確認,再從公式儲存格的角落拖曳填滿控點向下,即可自動套用至其他列。此方法最適用於如「915」(將轉換為 9:15)或「1234」(轉換為 12:34)等數字。詳情請見結果預覽:

套用公式在3位或4位數字之間插入冒號

重點說明:此公式會提取前面的數字作為小時部分,並取最後兩位數字作為分鐘部分,同時將秒數設為零。

如果數字包含 5 或 6 位數,請嘗試此公式:

在對應儲存格中輸入此公式(例如,若「123456」位於 A1 儲存格,則在 B1 輸入):

=(INT(A1/10000)&":"&INT(MOD(A1,10000)/100)&":"&MOD(A1,100))+0

按下 Enter 確認,並向下拖曳填滿控點以填滿其餘儲存格。此公式適用於如「123456」(轉換為 12:34:56)或「93005」(轉換為 9:30:05)等數字格式。結果預覽如下:

套用公式在5位或6位數字之間插入冒號

公式會分別提取小時、分鐘與秒數,以冒號串接後,再加上 0,強制 Excel 將其識別為時間值。

套用上述公式後,若結果顯示為序列號碼(例如「0.3875」)而非時間格式,請選取已填滿的儲存格範圍,前往開始選項卡,點擊數字格式下拉式清單(通常標示為「一般」),然後選擇時間。如此即可將結果轉換為正確的時間顯示格式:

將儲存格格式變更為時間格式

實用提示:
• 儲存格參照(例如 A1)必須對應您實際的資料位置,請依需求調整公式中的參照。
• 在套用公式前,請確認所有數字皆符合預期長度(3–4 位數或 5–6 位數)。
• 若想將公式結果轉為靜態值,請複製後使用選擇性貼上並選取「數值」。

限制條件:這些公式僅適用於特定格式的時間數字(小時-分鐘或小時-分鐘-秒)。若資料長度不一致,可能需手動調整或套用自訂公式。

若您遇到 #VALUE! 錯誤,請檢查是否含有空白儲存格、非數值字元,或位數不符的情形,並確保來源儲存格僅輸入數字。

kutools for excel AI 的螢幕截圖

透過 KUTOOLS AI 解鎖 Excel 的神奇功能

  • 智慧執行:透過簡易指令,輕鬆執行儲存格操作、分析資料,並建立圖表!
  • 自訂公式:打造專屬公式,讓您的工作流程更順暢!
  • VBA 編碼:輕鬆撰寫並套用 VBA 程式碼,立即提升工作效率!
  • 公式解析:輕鬆掌握複雜公式!
  • 文字翻譯:輕鬆打破試算表中的語言隔閡!
運用 AI 驅動的工具強化您的 Excel 能力。立即下載體驗前所未有的高效!

使用 VBA 程式碼,在輸入數字時自動轉換為時間格式

對於經常輸入數值,並希望 Excel 能立即將其自動格式化為帶冒號的時間格式的使用者,可透過 VBA 程式碼實現此自動化流程。當您需要在固定範圍內輸入原始資料時,此解決方案尤其實用,確保每次輸入數字後即時轉換為時間格式,大幅減少重複操作並降低打字錯誤風險。

請依照下列步驟設定自動化功能:

1. 在您希望自動將數字格式化為時間的工作表中,於底部找到工作表分頁。

2. 以滑鼠右鍵按一下該工作表分頁,並從選單中選擇檢視程式碼,即可開啟 Microsoft Visual Basic for Applications 編輯器。請將下方程式碼貼到對應您工作表的空白程式碼視窗中(而非標準模組):

VBA 程式碼:自動將數字轉換為時間格式:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Updateby Extendoffice 20160606
    Dim xStr As String
    Dim xVal As String
    On Error GoTo EndMacro
    If Application.Intersect(Target, Range("A1:A20")) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    Application.EnableEvents = False
    With Target
        If Not .HasFormula Then
            xVal = .Value
            Select Case Len(xVal)
                Case 1 ' e.g., 1 = 00:01 AM
                    xStr = "00:0" & xVal
                Case 2 ' e.g., 12 = 00:12 AM
                    xStr = "00:" & xVal
                Case 3 ' e.g., 735 = 7:35 AM
                    xStr = Left(xVal, 1) & ":" & Right(xVal, 2)
                Case 4 ' e.g., 1234 = 12:34
                    xStr = Left(xVal, 2) & ":" & Right(xVal, 2)
                Case 5 ' e.g., 12345 = 1:23:45 NOT 12:03:45
                    xStr = Left(xVal, 1) & ":" & Mid(xVal, 2, 2) & ":" & Right(xVal, 2)
                Case 6 ' e.g., 123456 = 12:34:56
                    xStr = Left(xVal, 2) & ":" & Mid(xVal, 3, 2) & ":" & Right(xVal, 2)
                Case Else
                    Err.Raise 0
            End Select
            .Value = TimeValue(xStr)
        End If
    End With
    Application.EnableEvents = True
    Exit Sub
EndMacro:
    MsgBox "You did not enter a valid time"
    Application.EnableEvents = True
End Sub

按一下「檢視程式碼」,然後將程式碼貼上至模組中

注意:範例中使用的儲存格範圍為 A1:A20,但您可依需求調整此參照(例如 B2:B100 等)。僅在指定範圍內輸入的數字才會自動套用格式;若數值由公式產生,巨集將不會予以變更。

3. 現在,當您在目標儲存格範圍內輸入代表時間的數字(例如 102319)並按下 Enter 後,程式碼會立即解讀並將該輸入自動轉換為時間格式(在此範例中為「上午 10:23:19」)。此轉換即時完成,無需額外手動設定格式:

當您輸入數字時,該數字將自動格式化為時間格式

重要提醒:
• 若輸入無效數字,將彈出提示訊息:「您輸入的不是有效的時間。」
• 執行此巨集後,請務必確認 Application.EnableEvents 未在活頁簿其他位置被關閉,否則自動轉換功能將無法觸發。
• 若要在其他工作表中重複使用此巨集,請於該工作表的程式碼視窗中重新執行相同設定步驟。
• 使用限制:此程式碼僅適用於純數字序列(不含空格、冒號或其他分隔符號),混合內容或非數值輸入將不會被轉換。

最佳使用情境:當工作表中的使用者輸入受到嚴格控管,且資料始終符合預期的格式與位數時。

疑難排解:若巨集未觸發,請確認事件是否已啟用、範圍設定是否正確,以及巨集是否已貼入工作表的程式碼視窗中。若您的數字位數結構不同,可能需進一步自訂 VBA 邏輯。


替代方案:使用「文字分列」功能在數字之間插入冒號以轉換為時間格式

另一種實用的解決方案是使用 Excel 的文字分列功能,特別適合在將數字重新組合成時間格式前,先將其分割為小時、分鐘與秒數欄位。

首先,選取包含數字的欄位。前往資料 > 文字分列。選擇固定寬度,並根據數字位置設定分隔線,精準區分小時、分鐘與秒數。分割完成後,立即使用 TIMETIMEVALUE 函數,在新欄位中將其重新組合為標準時間格式!
範例:若將「123456」分割為三欄「12」(小時)、「34」(分鐘)、「56」(秒數),可輸入:

=TIME(A1,B1,C1)

優點:無需複雜公式或 VBA,輕鬆實現批次轉換。
缺點:需手動調整分割點並重新組合,無法於輸入時自動執行。

如需文字分列的逐步操作指引,請立即參閱 Microsoft 官方文件

總結建議:針對一次性或結構化轉換,請優先使用公式或「文字分列」功能;若需持續進行即時輸入轉換,則建議採用 VBA 自動化。在選擇方法前,務必確認資料的實際位數結構,並明確定義目標儲存格範圍,以避免產生意外結果。執行大量轉換前,如有需要,請務必先行備份資料。


最佳 Office 生產力工具

🤖KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行     產生程式碼  建立自訂公式    分析資料並產生圖表  呼叫增強函數……
熱門功能尋找、醒目提示或標記重複值     刪除空白行     合併列或儲存格而不遺失資料     不使用公式的四捨五入……
高級 LOOKUP多重條件 VLookup    多重數值 VLookup     跨多個工作表 VLookup      模糊查找……
高級下拉列表快速建立下拉式清單     相依式下拉式清單     多選下拉式清單……
欄位管理員新增指定數量的欄位移動欄位切換隱藏欄位的可見狀態比較範圍與欄位……
精選功能網格聚焦     設計視圖   增強編輯欄    工作簿與工作表管理員     資源庫(自動文字)  日期提取     合併工作表    加密/解密儲存格    依清單傳送電子郵件     超級篩選      特殊篩選(篩選粗體儲存格/斜體/刪除線……) ......
頂尖 15 工具組12 文字工具添加文本刪除特定字符,……)   50+ 圖表 類型甘特圖,……)   40+ 實用公式基於生日計算年齡,……)   19 插入工具插入二維碼從路徑插入圖片,……)   12 轉換工具金額轉大寫匯率轉換,……)   7 合併和拆分工具高級合併行分割儲存格,……)……以及更多
在您的慣用語言中使用 Kutools—支援英文、西班牙文、德文、法文、中文及另外 40+ 種語言!

運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……


Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!

  • 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
  • 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
  • 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!

所有 Kutools 增益集,一個安裝程式

Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!

ExcelWordOutlookTabsPowerPoint
  • 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
  • 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
  • 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
  • 30 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用