首页 文章

将时间范围格式化为天数,小时数和分钟数

提问于
浏览
18

这纯粹是Excel表格问题 .

我的时间 Span 基本上是两个单元格之间的差异,每个单元格包含一个日期:

通过将数字格式更改为 [h]:mm ,我已设法获得小时数和分钟数的时差 . 现在我希望得到天数,小时数和分钟数的差异 . 我尝试将数字格式设置为 [d]:[h]:[mm] 但Excel不接受它 .

这就是我现在拥有的:

A                   B                   C (=A2-A1)
    ----------------    ----------------    ----------
1|  14/10/2011 00:00    17/10/2011 07:50    79:50
2|  14/10/2011 00:00    17/10/2011 11:00    83:00

这是我想要的:

A                   B                   C (=A2-A1)
    ----------------    ----------------    ----------
1|  14/10/2011 00:00    17/10/2011 07:50    3:7:50
2|  14/10/2011 00:00    17/10/2011 11:00    3:11:00

我怎样才能做到这一点?有没有可用的数字格式?

6 回答

  • 7

    你可以用 TEXT
    = TEXT(B1-A1,"d:h:mm")

    注意,直接在单元格上使用简单的数字格式可以实现相同的效果

    • 选择你的范围(单元格 C1, C2 等)

    • 右键单击并设置单元格格式

    • 自定义

    • 类型 d:hh:mm

    如果与您的示例数据不同,您的日期差异超过31天,那么采用的方法如 =INT(B1-A1)&":"&TEXT(B1-A1,"h:mm")
    将工作

  • 1

    警告:以上仅适用于少于31天的范围 . 使用

    =CONCATENATE(TEXT(FLOOR(B1-A1,1),"@")," Days",TEXT(B1-A1," h:mm:ss"))
    

    相反,超过31天的范围 . 这样排序不好,所以最好在一列中进行计算,然后对该列进行美化以获得最终结果 .

  • 26

    不幸的是,它似乎无法组合数字和日期时间格式,否则自定义格式为:

    0:h:m
    

    将是罚单 . 但是,如果对于32天或更长的 Span ,您只需显示可以使用自定义格式的(小数)天数,即可:

    [>=32] 0.00 "days"; d:h:m
    

    单元格值仍为数字 .

  • 0

    以下肯定不是最短的公式,不是问题的直接答案,而是以下列格式显示正确的结果(也在LibreOffice上):

    #days ## hours ## minutes ## seconds

    =CONCATENATE(TEXT(FLOOR(B2-A2,1),"@")," days ", IF(HOUR(A12)-HOUR(A11)<0,HOUR(A12)-HOUR(A11)+24,HOUR(A12)-HOUR(A11))," hours ",IF(MINUTE(A12)-MINUTE(A11)<0,MINUTE(A12)-MINUTE(A11)+60,MINUTE(A12)-MINUTE(A11)), " minutes ", TEXT(B2-A2,"s"), " seconds")
    
  • 0

    假设您的开始日期位于单元格C2中且结束日期位于单元格D2中,以下方法也可以正常工作:

    =TEXT((D2-C2)-MOD(D2-C2,1),"0") & " days " & TEXT(MOD(D2-C2,1),"hh:mm")
    
  • 2

    =IFERROR(INT(Date1-Date2)&" Days "&INT(MOD((Date1-Date2);INT(Datw1-Date2))*24)&" Hours "&MINUTE(Fate1-Date)&" Min";IFERROR((Date1-Date2);"NA"))enter code here

    无论你拥有什么日期,我认为这应该可以解决问题 .

相关问题