我目前有一个数据透视表,其中每行代表一个日期,每列代表一名员工。交叉点中的值是当天工作时长的总和。我希望能够在另一张工作表/选项卡中的单元格中输入两个日期,并在相应的表格中计算工作时长大于 0 的天数。
目前,我正在使用 COUNTIF() 语句,该语句从小时日志中选择给定数量的行,并计算大于零的条目数。但是,我必须自己滚动并选择行。我希望公式能够采用我输入的任何两天,并在工作表中查找这些天。这有意义吗?
以下是我提供的公式,供参考:
=COUNTIF('Work Hours'!D107:D111, ">0")
在这种情况下,一个人的名字在 D 列,而我想要的费率范围在第 107 行到第 111 行。
答案1
假设你的时间是在单元格中'工作时间'!D5:D200并且你的日期是‘工作时间’!C5:C200. 假设你的开始日期在 D3和你的结束日期为 E3(在您的摘要表上)。
计算开始日期和结束日期之间超过零小时的条目的公式为:
=SUM(('Work Hours'!D$5:D$200>0)*('Work Hours'!$C$5:$C$200>=$D$3)*('Work Hours'!$C$5:$C$200<=$E$3))
这将创建一个 TRUE/FALSE 值数组,这些值相乘后的结果为 0 和 1。因此,TRUE * TRUE = 1 * 1 = 1 和 TRUE * FALSE = 1 * 0 = 0。将其输入单元格中=TRUE * FALSE
,您可以亲眼看到。然后,SUM 将所有 1 相加,这就是您的答案。
我不确定这如何适合您的工作表,但您明白我的意思。