营业时间到工作日

在哪里工作,我没有得到加class,但我累积假期工作的加class。 我有下面的电子表格,它计算我已经完成了多less加class,并在D15进行总计。

现在我想计算这是多less天,以每天8小时为基础。 在D16 ,我已经完成=D15/8并将其格式化为h.mm \d\a\y\s ,但这显示为2.26 days而不是2.4375 days

D16使用正确的公式是什么?

在这里输入图像描述

请注意读者:这个问题导致了多种解决scheme,其中一些在评论中已经讨论过了。 以下是find的解决scheme的摘要。


首先解决scheme

 =(HOUR(D15)+MINUTE(D15)/60)/8 

说明

在Excel中的date和时间存储为序列号 ,所以19:30实际上是0.8125
所以,如果你除以8 ,你会得到0.1015625
后者的价值是2.26 days


OP的版本 (感谢Danny Becket(OP)) – 请参阅下面的评论。
此解决scheme现在可以处理24小时以上

 =((DAY(D20)*24)+HOUR(D20)+(MINUTE(D20)/60))/8 

或更好(信贷给巴里胡迪尼 ):

 =((INT(D20)*24)+HOUR(D20)+(MINUTE(D20)/60))/8 

前面的公式对于大数值有一定的限制,在这里也许不相关,但是如果D20是800:00那么你得到了错误的答案(7天而不是100天)。 这可能是因为DAY函数给你的日历天将在31日“复位”,最好用INT代替DAY


另一个容易理解的版本

作为时间值除以当天的长度:

 =D15/"8:00" 

如果工作日的长度发生变化,则更容易改变

input:

B3 8:3
C3 16:3
D3 =IF(B3<C3,C3-B3-1/3,2/3-B3+C3)

selectB3:D3 ,格式为hh:mm并根据需要复制下来。

Sum ColumnD并附加*3的公式,但格式为数字。

根据需要通过覆盖ColumnB和/或ColumnC单元格来添加数据(默认值不会添加到总数中)。

  • 应付加class到下一个正常的开始时间(即包括过去的午夜,新的序列号)。 因为标准工作日为8小时(24小时为date连续计数器统一)。 B3C3可以被硬编码,但是(i)没有必要和(ii)允许更多的灵活性。 如果很容易识别非标准的开始/结束可以使用条件格式。

  • 没有解决周末加class,但可以很容易地适应这样做(例如添加列,标志周末的一天,在8额外的列,然后加上8 [1/3]的结束时间)。

请确保D15的数字格式为[h]:mm,那么D16 = sum(D15 /“8:00”)应该可以正常工作,而我正在跟踪年假,我的工作时间为37h分为7点24分半天的假期为“3:42”

我把我的电子表格的单元格K2中的累计数字设置为[h]:mm,然后对于格式化为常规数字的天数,我有K3 = SUM(K2 /“7:24”)

您可能还需要将Excel中的date数据更改为1904年的date系统http://support.microsoft.com/kb/182247/en-gb以使其正常工作(如果您有负面的时间,则只有一个问题)计算弹性小时数时&#xFF09;