Excel 求和的数字与单元格中的数字不同

Excel 求和的数字与单元格中的数字不同

我试图跟踪我的工作时间,并将其转换为计费天数(我按天计费,而不是按小时计费),同时计算我的每月工作时间余额。

我有与每月每一天相对应的单元格,其中我以 hh:mm 格式输入我的工作时间。然后我就可以把这些小时数加起来,得到一个总 A

现在我试图在一个单元格中获取计费天数,已知:

  • 0(或空单元格)<= x < 03:00 = 不可计费
  • 03:00 <= x < 06:00 = 0.5 天计费
  • 06:00 <= x = 1 天计费

其中 x 是每天的工作时间(在第一个中,x 可能始终是一个空单元格或 0,因为我不希望免费工作......)

我已经探索了相当多的条件求和函数,但我能找到的任何资源仍然是关于对单元格本身中的值进行求和(可能带有条件),而不是 0、5 和 1。我实际上不知道是否可以通过 excel 公式做到这一点,或者我是否需要为此使用 VBA。

答案1

您还可以使用该SUMPRODUCT功能:

=SUMPRODUCT((A1:A4<(6/24))*(A1:A4>=(3/24)))*0,5+SUMPRODUCT((A1:A4>=(6/24))*1)*1

在此处输入图片描述

这并不难理解。第一部分SUMPRODUCT((A1:A4<(6/24))*(A1:A4>=(3/24)))*0,5执行以下操作:

它会遍历范围A1:A4,对于每个较小的单元格6/24(在 Excel 中,小时被视为一整天的一小部分),它会添加TRUE到一个数组中。然后,您再次执行相同的操作,但检查它是否大于或等于,3/24并构建第二个数组,TRUE其中包含符合条件的值。然后,将两个数组逐行相乘。TRUE*TRUE结果为 1(而TRUE*FALSE为 0)。所有的 1 和 0 都会相加。最后,您只需将结果与 0.5 相乘 - 因为您希望每个这样的天数都计为 0.5 个可计费天数。

第二个也是同样的原理SUMPRODUCT

我希望这对你有帮助。

答案2

最明显的方法是添加一个辅助列,在其中计算计费天数,然后总结这个辅助列。

辅助列的示例公式:
=IF(A2<TIME(3,0,0),0,IF(A2<TIME(6,0,0),0.5,1))

或者,您可以使用不同的数组公式一步完成计算。
由于这些是数组公式,因此您需要在输入后按 CTRL+SHIFT+ENTER。

  • =SUM(IF(A2:A19<TIME(3,0,0),0,IF(A2:A19<TIME(6,0,0),0.5,1)))
  • =SUM(MATCH(A2:A19,{0,0.125,0.25},1)-1)/2

在此处输入图片描述

相关内容