02d 11h 43m 31s
00d 00h 49m 19s
00d 00h 09m 57s
假設文本在 A1:
=SUMPRODUCT(
--MID(SUBSTITUTE(A1,"d",""),FIND({"d","h","m","s"},SUBSTITUTE(A1,"d","")),2),
{24,1,1/60,1/3600}
)
SUBSTITUTE(A1,"d","") 移除 'd' 統一分隔符。FIND({"d","h","m","s"},...) 定位四個單位位置。MID(..., pos, 2) 提取兩位數字(含前導零)。-- 轉為數值。SUMPRODUCT 與權重 {24,1,1/60,1/3600} 相乘求和。=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」,位置固定。
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 直接顯示「總時:分:秒」。