Date 查找工作时间(不包括多次输入和输出)
我有一张excel表格,上面有数千条员工在工作时间出入的记录。我想找出员工工作的持续时间。我需要一种方法来计算先进和后出之间的差异,并忽略它们之间的记录。 床单看起来像这样Date 查找工作时间(不包括多次输入和输出),date,excel,spreadsheet,vba,Date,Excel,Spreadsheet,Vba,我有一张excel表格,上面有数千条员工在工作时间出入的记录。我想找出员工工作的持续时间。我需要一种方法来计算先进和后出之间的差异,并忽略它们之间的记录。 床单看起来像这样 Employee In out A 1-Jan 6:30 1-Jan 9:30 A 1-Jan 9:50 1-Jan 4:30 A 1-Jan 4:40 1-Ja
Employee In out
A 1-Jan 6:30 1-Jan 9:30
A 1-Jan 9:50 1-Jan 4:30
A 1-Jan 4:40 1-Jan 5:30
A 2-Jan 6:32 2-Jan 10:30
A 2-Jan 11:00 2-Jan 4:25
B . .
.
. . .
如果数据在A、B和C列中,并且您希望在D1列中获得员工
A
的持续时间,则非常感谢您提供的任何帮助,此公式可以:
=MAX(IF(A1:A5="A",C1:C5))-MIN(IF(A1:A5="A",B1:B5))
将公式输入到单元格中后,您需要按Ctrl+Shift+enter使其生效,而不是按enter
来退出光标
我希望这有帮助
编辑:我没有假设任何标题,因此数据从第1行开始。对于“A”,假设您的列是
A:A
到C:C
(并且日期是这样识别的,而不是文本):
通过使用
VLOOKUP
,有一种偷偷摸摸的方法-必须对数据进行排序才能使其工作
要找到开始时间,很容易找到=VLOOKUP(“A”,A2:C999,2,FALSE)
为了找到结束时间,我们必须找到最后一个“A”记录,我们通过搜索比“A”稍多的一点来实现这一点:
=VLOOKUP(“A!”,A2:C999,3,TRUE)
注意VLOOKUP中的TRUE,它将返回下一个小于我们搜索的最大值,因此它将返回最后一个“A” 从另一个中减去一个,我们得到了方程:
=VLOOKUP("A!",A2:C999,3,TRUE)-VLOOKUP("A",A2:C999,2,FALSE)
9:50->4:30, 11:00->4:25? 这些数据毫无意义,因为员工在进入之前就离开了!!!上午9:50,下午4:30。这是一个随机的例子。
=VLOOKUP("A!",A2:C999,3,TRUE)-VLOOKUP("A",A2:C999,2,FALSE)