计算某个名字出现在某个日期旁边的次数

计算某个名字出现在某个日期旁边的次数

我目前有一个数据透视表,其中每行代表一个日期,每列代表一名员工。交叉点中的值是当天工作时长的总和。我希望能够在另一张工作表/选项卡中的单元格中输入两个日期,并在相应的表格中计算工作时长大于 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 相加,这就是您的答案。

我不确定这如何适合您的工作表,但您明白我的意思。

相关内容