如何将 dd:hh:mm:ss 格式的时间转换为 Excel 电子表格中的秒数

问题描述

我在 Excel 中获取了一些数据,其中大部分数据的格式为 hh:mm:ss。所以我可以使用“=HOUR(A2)*3600 + MINUTE(A2)*60 + SECOND(A2)”这样的公式来转换它。

但这不适用于 dd:hh:mm:ss 格式,因为 day() 函数在这里不像 hours()/minute()/second() 那样工作。有人可以帮我吗?

enter image description here

解决方法

在 Excel 中,时间表示为天数和一天的分数。

一天有 nginx 秒。

您的数据似乎都是文本。

包含dd 参数的文本字符串不会自动转换;否则,它将作为任何数学运算的结果。

因此您可以测试错误以区别对待 dd 格式的字符串

  • 将该值乘以 86400
  • 如果有错误,使用86400 =>提取dd部分; LEFT 提取时间部分;然后将它们相加并将总和乘以 MID

试试:

86400

(如果您想要整秒,可以将公式包装在 =IFERROR(A14*86400,(LEFT(A14,FIND(":",A14)-1)+ MID(A14,A14)+1,99))*86400) ROUND 函数中)

enter image description here

,

enter image description here

=IF(LEN(A2)-LEN(SUBSTITUTE(A2;":";""))=3;DAY(LEFT(A2;SEARCH(":";A2)-1))*24*3600+HOUR(RIGHT(A2;LEN(A2)-SEARCH(":";A2)))*3600+MINUTE(RIGHT(A2;LEN(A2)-SEARCH(":";A2)))*60+SECOND(RIGHT(A2;LEN(A2)-SEARCH(":";A2)));HOUR(A2)*3600+MINUTE(A2)*60+SECOND(A2))

带所有小数的选项:当您使用 SECOND 时,您将忽略所有小数,这就是为什么像 12.9883 这样的值被四舍五入为 13 秒的原因。如果你需要所有的小数,你可以这样做:

=IF(LEN(A1)-LEN(SUBSTITUTE(A1;":";""))=3;DAY(LEFT(A1;SEARCH(":";A1)-1))*24*3600+VALUE(RIGHT(A1;LEN(A1)-SEARCH(":";A1)))*24*60*60;VALUE(A1)*24*60*60)

你的输出将是这样的:

enter image description here

,

由于字符串代表时间,所以使用 VALUE function 将它们转换为时间序列号,然后应用 TEXT function 将时间序列转换为秒。

还可以使用 LeftRightSubstitute 函数来分隔天数、时间和秒数。

此公式返回列 A 中表示的总秒数

= IFERROR( --TEXT( VALUE($A1),"[ss]" ),--TEXT( --LEFT( SUBSTITUTE( $A1,":",REPT( " ",25 ),1 ),25 )
 --TRIM( RIGHT( SUBSTITUTE( $A1,25 ) ),"[ss]" ) )

此公式返回总秒数,列A

= IFERROR( --TEXT( VALUE($A1),"[ss]" )
 --RIGHT( SUBSTITUTE( $A1,".",25 ) & ".",25 ) )

enter image description here