工作日数小时

时间:2012-09-07 08:44:01

标签: excel excel-2007 excel-formula

我工作的地方我没有加班费,但是我加班加点工作。我有以下电子表格,用于计算我已完成的加班时间,并在D15中计算总计。

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

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

enter image description here

3 个答案:

答案 0 :(得分:5)

读者注意:这个问题导致了多个解决方案,其中一些在评论中讨论过。以下是找到的解决方案的摘要。


第一个解决方案

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

<强>解释

Excel中的日期和时间存储为序列号,因此19:30实际上是0.8125
因此,如果将其除以8,您将获得0.1015625 后一个值值2.26 days


OP的版本(感谢Danny Becket(OP)) - 请参阅以下评论。
该解决方案现在处理小时数> 24。

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

或更好(信用到Barry Houdini):

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

前一个公式对大值有限制,可能在这里不相关但如果D20是800:00那么你会得到错误的答案(7天而不是100天)。这可能是因为DAY函数为您提供日历日,该日历将在31处“重置”,最好使用INT代替DAY


另一个易于理解的版本

除以时间长度作为时间值:

=D15/"8:00"

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

答案 1 :(得分:2)

输入:

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

选择B3:D3,格式为hh:mm,然后根据需要进行复制。

求和ColumnD并将*3追加到公式中,但格式为数字。

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

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

  • 不解决周末加班问题,但可以很容易地进行调整(例如,添加专栏,在额外的专栏中标记周末日8,然后将8 [1/3]加到完成时间)。

答案 2 :(得分:1)

确保D15的数字格式为[h]:mm 那么D16为= sum(D15 /&#34; 8:00&#34;)应该可以正常工作 多数民众赞成我跟踪我的年假,我工作37小时,休假日被归类为7h24m或半天休假作为&#34; 3:42&#34;

我假设在电子表格的单元格K2中指定为[h]:mm的累积数字 然后我将K3 = SUM(K2 /&#34; 7:24&#34;)格式化为一般数字的天数

您可能还需要将Excel中的日期数据更改为1904日期系统http://support.microsoft.com/kb/182247/en-gb 让这个工作(如果你在计算弹性小时数时有负面的时间,那只会出现问题)