如何在每日列中的两个日期之间划分时间

时间:2018-11-20 09:37:51

标签: excel excel-formula

我非常需要帮助。

我有下表。
从2015年开始,到2019年底,每年的每一天右边都有大约300行和列。我仅在此处输入一些列作为示例。

我需要什么
在右侧列的左侧两天之间划分时间(可以是小时或十进制天,没关系)的公式。
在剩下的日子中(这期间未包括在内),我需要在这些列中将其设置为零。 我手动输入了所需的结果,以便可以帮助您理解。

例如
第一行:
员工已花费

  • 旅行第一天到达目的地15个小时,
  • 第二天旅行24小时
  • 旅行的最后一天11:50小时。

1/4/2015 23:59 开始,右边的所有其余列(此处不在此处)应将结果设为零。

谢谢!!

Entry Date  Exit Date   1/1/2015 23:59  1/2/2015 23:59  1/3/2015 23:59

1/1/15 9:00 1/3/15 11:50        15.00           24.00           11.50

1 个答案:

答案 0 :(得分:1)

据我所知,可以归结为这一点

                   1.0 days       2.0 days       3.0 days       4.0 days

period=p in h/d.d  p-(1-(so far)) p-(2-(so far)) p-(3-(so far)) 0 

编辑2:我想出了一个公式

注意: 该公式假定存在一列,该列指定“结束日期/时间”列(“ B”)和第一个工作小时(“ D”)之间的0小时工作,因此 你是这样的:

    A               B               C       D               E               F               G               H
1   Entry Date      Exit Date       ZERO    1/1/2015 23:59  1/2/2015 23:59  1/3/2015 23:59  1/4/2015 23:59  1/5/2015 23:59
2   1/1/15 9:00     1/3/2015 11:50      0   0.6243055556    1               0.49375         0               0.00
3                   

这里有多余的列以避免循环依赖,因为 我们必须“迭代地”累积小时数

D列第2行的主要公式为:

=MIN(D1-$A2,MIN(MAX(($B2-$A2) - SUM($C2:C2), 0),1))

注意:在Excel中,可能需要用分号代替逗号作为分隔符。
注意:公式中的最后一位数字取决于单位。这是十进制的天数。如果是几个小时,则输入24。

用简单的英语表示一个单元格

  • 计算范围在C到1之间的小数点的小时/天数-1
  • 减去开始和结束(总小时数)之间的差值
  • 如果小于0,则输入0 (MAX(x, 0))
  • 如果大于1,则输入1 (MIN(x, 1))
  • 在结果之间进行选择,或者选择当前日期与开始时间之间的差异(如果较小)