单元格内时间计算公式

单元格内时间计算公式

我想要输入一个公式来计算同一个单元格内两个时间之间的差值。

例如,6-2 或上午 6 点至下午 2 点的班次等于 8 小时,并且在“p”列末尾列出两周班次的总和

答案1

由于 Excel 存储和管理日期的方式,这是一个令人惊讶的复杂问题。此解决方案做出了许多假设,具体来说:

  • 指定的时间不超过 24 小时
  • 开始日期和结束日期均指定了 am 和 pm
  • 换班字段中没有多余的字符
  • 每天的条目必须独立计算(一个单元格中不能有两周的总数)

请看以下示例数据:

班次时间细分示例

细胞B2公式如下:

=TIME(LEFT(A2,FIND("-",A2)-3)
      +IF(MID(A2,FIND("-",A2)-2,2)="pm",12,0),0,0)

细胞C2公式如下:

=TIME(MID(A2,FIND("-",A2)+1,LEN(A2)-FIND("-",A2)-2)
      +IF(RIGHT(A2,2)="pm",12,0),0,0)

细胞D2公式如下:

=IF(C2>B2,C2-B2,C2+1-B2)*24

从理论上讲,这些单元格可以合并,取代对B2C2在最终公式中时间发挥每个细胞的功能。

如果最终目标是将一系列班次相加,得到两周的总数,我建议为每一天单独添加一行(或一列)计算结果。可以引用该行来计算小时数,并且可以将该行隐藏起来,以免扰乱文档的流程。

相关内容