在excel中计算加班时间

在excel中计算加班时间,excel,Excel,我正在尝试制作计算加班时间的电子表格,如下所示: 如果任务在下午2点后开始,则小时计算为一个半小时 如果任务在上午12点之后开始,则小时数计算为2小时 我在E列中写了以下公式: =IF(AND(B5>G1;B5<G2);D5*D1;D5*D2) =IF(AND(B5>G1;B5你的公式的问题是,你认为凌晨12:00是午夜。或24:00。如果你看G2,你会看到凌晨12:00或(24:00)在Excel中,它存储为0。逻辑检查是检查任何时间是否小于零。假设您从未处理负时间,则结果将始

我正在尝试制作计算加班时间的电子表格,如下所示: 如果任务在下午2点后开始,则小时计算为一个半小时 如果任务在上午12点之后开始,则小时数计算为2小时 我在E列中写了以下公式:

 =IF(AND(B5>G1;B5<G2);D5*D1;D5*D2)

=IF(AND(B5>G1;B5你的公式的问题是,你认为凌晨12:00是午夜。或24:00。如果你看G2,你会看到凌晨12:00或(24:00)在Excel中,它存储为0。逻辑检查是检查任何时间是否小于零。假设您从未处理负时间,则结果将始终为假,因为没有时间小于零

我会稍微改变一下你的布局,增加一个三班制,那里没有加班。当有人早上9点开始工作时会发生什么

如果您必须保持布局不变,我会将单元格D5中的公式更改为:

=HOUR(C5-B5)
然后确保单元格D1、D2、D5和E5都是通用格式,因为它们只是数字而不是实际时间

下一组G2等于08:00

将E5中的公式更改为:

=IF(B5<G2,D5*D2,IF(B5>=G1,D5*D1,D5))
or
=D5*IF(B5<G2,D2,IF(B5>=G1,D1,1))
=IF(B5=G1,D5*D1,D5))
或
=D5*IF(B5=G1,D1,1))
看看这能不能让你走得更远

需要注意的一件事是,Excel以十进制格式存储时间,这真的会让你大吃一惊。当你在一个单元格中看到12:00 PM时,你可能认为你正在处理12,但excel在该单元格中实际存储的是0.5,因为它是一天的一半。24:00不存在如果作为公式的输入提供,Excel公式将视为0。VBA不会接受它。有效的Excel时间范围为00:00到23:59

说到这里,如果你严格地看8小时轮班,只关心开始时间,你可以简单地做一个if语句,说如果(开始时间=1班开始时间,然后乘以1班费率,如果(开始时间=2班开始时间,然后乘以2班费率,没有特殊费率))


<> P>其他一些要考虑的,如果你正在看实际的开始时间,一个人从一个班开始,但在下一个班结束时会发生什么?

< P>你的公式的问题是你认为凌晨12点是午夜。或者24点。如果查看G2,您将看到Excel中的12:00 AM或24:00,它存储为0。逻辑检查是检查是否有任何值小于零。假设你从不处理负时间,你的结果总是错误的,因为没有时间小于零

我会稍微改变一下你的布局,在没有加班的地方增加一个三班制。当有人早上9点出发时会发生什么

如果您必须保持布局不变,我会将单元格D5中的公式更改为:

=HOUR(C5-B5)
然后确保单元格D1、D2、D5和E5都是通用格式,因为它们只是数字而不是实际时间

下一组G2等于08:00

将E5中的公式更改为:

=IF(B5<G2,D5*D2,IF(B5>=G1,D5*D1,D5))
or
=D5*IF(B5<G2,D2,IF(B5>=G1,D1,1))
=IF(B5=G1,D5*D1,D5))
或
=D5*IF(B5=G1,D1,1))
看看这能不能让你走得更远

需要注意的一件事是,Excel以十进制格式存储时间,这真的会让你大吃一惊。当你在一个单元格中看到12:00 PM时,你可能认为你正在处理12,但excel在该单元格中实际存储的是0.5,因为它是一天的一半。24:00不存在如果作为公式的输入提供,Excel公式将视为0。VBA不会接受它。有效的Excel时间范围为00:00到23:59

说到这里,如果你严格地看8小时轮班,只关心开始时间,你可以简单地做一个if语句,说如果(开始时间=1班开始时间,然后乘以1班费率,如果(开始时间=2班开始时间,然后乘以2班费率,没有特殊费率))


<> P>其他一些要考虑的事情,如果你正在看实际的开始时间,一个人从一个班开始,但在下一个班结束时会发生什么?

在Excel中不做这件事来拯救你自己和一些可怜的分析家在路上遇到很多麻烦。学习一些SQL教程。在解决问题时,将公式分解成几个部分,看看哪个部分出了问题。在这种情况下,我将把你和陈述的每一部分写在两个单独的单元格中。查看这些单元格的结果,看看它们的计算结果是否符合预期。查看您的数据,检查您的格式,看看这些单元格是否实际包含您认为它们包含的内容。你的D1和D2实际上应该是因子,而不是时间。此外,D1系数应为1.5,而不是显示的1。第二是要确保你的时间实际上是时间,而不是文本。您可以通过输入一个公式(如ISNUMBER或ISTEXT)并将其指向特定单元格来测试这一点。如果它们存储为数字,请将单元格的数字格式简要更改为“常规”,以了解您真正在处理的是什么。如果不在excel中执行此操作,将为您自己和一些糟糕的分析师节省大量的麻烦。学习一些SQL教程。在解决问题时,将公式分解成几个部分,看看哪个部分出了问题。在这种情况下,我将把你和陈述的每一部分写在两个单独的单元格中。查看这些单元格的结果,看看它们的计算结果是否符合预期。查看您的数据,检查您的格式,看看这些单元格是否实际包含您认为它们包含的内容。你的D1和D2实际上应该是因子,而不是时间。此外,D1系数应为1.5,而不是显示的1。第二是要确保你的时间实际上是时间,而不是文本。您可以通过输入一个公式(如ISNUMBER或ISTEXT)并将其指向特定单元格来测试这一点。如果它们存储为数字,请将单元格的数字格式简要更改为“常规”,以查看您真正处理的是什么。@您需要将my、替换为;要匹配您的系统输入,您需要将my替换为;以匹配您的系统输入。