营业时间到工作日
在哪里工作,我没有得到加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连续计数器统一)。
B3
和C3
可以被硬编码,但是(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以使其正常工作(如果您有负面的时间,则只有一个问题)计算弹性小时数时)