【问题标题】:How to convert a text string into hours如何将文本字符串转换为小时
【发布时间】:2012-07-27 20:57:45
【问题描述】:

我有 d.hh.mm.ss 和 hh.mm.ss 格式的数据,我需要将两者转换为 HH.MM.SS 的时间值

在 A1 中,文本字符串是 16.21:38:27 在 A2 中,文本字符串是 04:08:45

我的结果单元格应显示 B1 405:38:27 B2 04:08:45

我尝试过使用 =LEFT(A1,SEARCH(":",A1)-1)+TIMEVALUE(MID(A1,SEARCH(":",A1)+1,255)) 但结果是错误的 A1 显示为 403:29:24 A2 显示为 104:45:00

我想要两个字符串都使用一个公式

【问题讨论】:

  • 我猜这是 Excel...添加了 excel 标签。
  • 您对格式的描述与示例值不匹配 - “d”组件后面是句点还是冒号?

标签: string excel text


【解决方案1】:

因为 4:08:45 是一种有效的时间格式,而 16.21:38:27 不是这个公式在这两种情况下都适用:

=IF(ISNUMBER(A1+0),A1+0,RIGHT(A1,8)+LEFT(A1,FIND(".",A1)-1))

将结果单元格格式化为 [h]:mm:ss

【讨论】:

    【解决方案2】:

    这里是:

    = IF(ISERROR(FIND(".",A1)),
        TIMEVALUE(A1), 
        VALUE(LEFT(A1,FIND(".",A1)-1)) + TIMEVALUE(MID(A1, FIND(".", A1)+1, 8)))
    

    如果是“.”字符串中不存在,它只是使用 TIMEVALUE() 来解析时间。否则,它会解析“。”之前和之后的部分。分别地。天数构成结果的整数部分,时间计算为小数天数。然后使用标准格式化对话框将其格式化为 [h]:mm:ss 格式。

    如果您希望 B1 存储转换后的小时/分钟/秒的字符串,而不是格式化的数字,请将上述全部内容包含在 TEXT(formula above, "[h]:mm:ss") 中。

    【讨论】:

      【解决方案3】:

      @TimWilliams 一针见血。你有一个错字。将16.21:38:27 更改为16:21:38:27,它将正常工作。您还可以包装公式以检查长度。如果超过 8 个字符,则意味着添加了一个日期。看这个例子

      试试这个(你可以同时使用这个)

      =IF(LEN(A1)>8,LEFT(A1,SEARCH(":",A1)-1)+TIMEVALUE(MID(A1,SEARCH(":",A1)+1,255)),TIMEVALUE(A1))

      快照

      编辑

      我刚刚注意到您在公式中硬编码了255。你不需要这样做。这也可以。

      =IF(LEN(A1)>8,LEFT(A1,SEARCH(":",A1)-1)+TIMEVALUE(MID(A1,SEARCH(":",A1)+1,LEN(A1)-SEARCH(":",A1)+1)),TIMEVALUE(A1))

      顺便说一句,为了万无一失,您还将TRIM 函数添加到上述公式中......

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-07
        • 1970-01-01
        • 1970-01-01
        • 2012-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多