我正在尝试提供Excel表格,我在一天中有一组30分钟的间隔(从10:00开始到20:00结束)我想计算有多少员工可用在他们每个人中间。
我的数据是他们的班次开始/结束时间和午休时间的开始结束时间(通常为1小时,但对于兼职人员来说这是最后30分钟)。
这是一个示例文件:http://www.mediafire.com/download/op3rarsiqj1sm77/time-tracker.xlsx
你有什么建议吗?
谢谢!
答案 0 :(得分:2)
您应该能够使用逻辑AND,NOT和IF公式,对每个员工进行测试,每次“IF”此时间大于(或等于)班次开始“AND”“IF”比午休时间(使用类似的逻辑)更小(或相等)的班次,“和”“不”。假设到达或离开的员工当时仍然在场,您将在样本表的单元格G2中输入的公式可以读取
=AND(
AND(IF(G$1>=$B2,TRUE(),FALSE()),
IF(G$1<=$C2,TRUE(),FALSE())),
NOT(AND(IF(G$1>$D2,TRUE(),FALSE()),
IF(G$1<$E2,TRUE(),FALSE()))))
将此复制并粘贴到G2:AA4中的其他单元格(对于每个员工和时间),您会看到每个员工何时出现(“TRUE”)或不出现(“FALSE”)。然后,您可以简单地为每列添加值,例如,对于列G,您可以在单元格G5中写入:
=SUM(G$2:G4)
(同样,复制并粘贴到其他列以获取其他时间的结果。)
编辑:正如Dirk在下面指出的那样,有更简洁的方法可以将其作为公式编写。在这里使用较长版本的优点是允许更多自定义。但是,为此目的,我们需要将公式置于“内外”。因此,例如,如果您想要使用文本而不是TRUE / FALSE注册员工缺勤,例如,“存在”(如果存在)和“”如果不存在,则必须使用IF作为外部函数和AND而不是在IF条件下,像这样:
=IF(
AND(AND(G$1>=$B2,G$1<=$C2),
NOT(AND(G$1>$D2,G$1<$E2))),
"present","")
您可以使用类似
之类的内容进行最终计数=COUNTIF(G$2:G4,"present")
答案 1 :(得分:1)
您可以使用COUNTIFS公式实现此目的。
把它放在G2格式中:
scipy.sparse.hstack
并填写AA2。