【问题标题】:Excel calculate time differenceExcel计算时差
【发布时间】:2021-11-27 16:11:18
【问题描述】:

当我在单个单元格中使用这种时间格式时,有什么方法(我在任何地方都找不到)计算时差(以分钟为单位):

例子:

A (start time-end time / start time-end time) B (sum of time difference in minutes)
00:00-06:00 / 22:00-24:00 480

【问题讨论】:

  • 您使用的是什么版本的 Excel?在什么类型的机器上?另外,您在寻找什么类型的答案:公式、vba 或其他?
  • 它是 Excel 2016、Windows 10、64。我只在寻找公式。我得到了一些东西,它的工作原理:=SUM(TEXT((MID(A5;7;5))- (LEFT(A5;5));"[mm]");TEXT((RIGHT(A5;5))-(MID(A5;15;5));"[mm]")) 但是!如果我只输入 22:00-24:00 的一部分时间(这在我的表中也可能),我就会出错。

标签: excel time difference


【解决方案1】:

使用 FILTERXML 返回一个时间数组,并分别从 2 和 4 位置减去 1 和 3 位置。

包裹IFERROR以处理没有第二次输入。

然后求和:

=SUM(IFERROR(FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(A1,"/","-"),"-","</s><s>")&"</s></t>","//s["&{2,4}&"]")-FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(A1,"/","-"),"-","</s><s>")&"</s></t>","//s["&{1,3}&"]"),0))*24*60

根据版本不同,退出编辑模式时可能需要使用 Ctrl-Shift-Enter 而不是 Enter 来确认

注意:FILTERXML 仅适用于更高版本的 Excel,不适用于 Mac 版本。

【讨论】:

    【解决方案2】:

    谢谢!但我发现这对我来说很好:

    =IFERROR(IF((LEN(C5)=25);SUM(TEXT((MID(C5;7;5))-(LEFT(C5;5));"[mm]");TEXT((RIGHT(C5;5))-(MID(C5;15;5));"[mm]"));SUM(TEXT((MID(C5;7;5))-(LEFT(C5;5));"[mm]")));"")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-05
      • 2018-08-16
      相关资源
      最近更新 更多