首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Excel 將「天/時/分/秒」文本轉換為總小時數公式

     編輯:程式設計綜合問答

數據格式

02d 11h 43m 31s
00d 00h 49m 19s
00d 00h 09m 57s

單儲存格公式(無需 VBA)

假設文本在 A1:

=SUMPRODUCT(
    --MID(SUBSTITUTE(A1,"d",""),FIND({"d","h","m","s"},SUBSTITUTE(A1,"d","")),2),
    {24,1,1/60,1/3600}
)

原理解析

  1. SUBSTITUTE(A1,"d","") 移除 'd' 統一分隔符。
  2. FIND({"d","h","m","s"},...) 定位四個單位位置。
  3. MID(..., pos, 2) 提取兩位數字(含前導零)。
  4. -- 轉為數值。
  5. SUMPRODUCT 與權重 {24,1,1/60,1/3600} 相乘求和。

兼容舊版 Excel(無動態數組)

=LEFT(A1,2)*24 + MID(A1,5,2) + MID(A1,8,2)/60 + MID(A1,11,2)/3600

前提:格式固定「2位d 2位h 2位m 2位s」,位置固定。

VBA 自定義函數(可復用)

Function DhmsToHours(txt As String) As Double
    Dim parts() As String: parts = Split(txt, " ")
    Dim mult As Variant: mult = Array(24, 1, 1/60, 1/3600)
    Dim i As Long, val As Double
    For i = 0 To 3
        val = Val(Left(parts(i), 2))
        DhmsToHours = DhmsToHours + val * mult(i)
    Next
End Function

使用:=DhmsToHours(A1)

顯示格式建議

結果儲存格設置自定義格式 [h]:mm:ss 直接顯示「總時:分:秒」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved