我试图跟踪我的工作时间,并将其转换为计费天数(我按天计费,而不是按小时计费),同时计算我的每月工作时间余额。
我有与每月每一天相对应的单元格,其中我以 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
。
我希望这对你有帮助。