查找工作时间的长短,不包括多重input和输出

在工作时间,我有一个有数千个员工logging的Excel表格。 我想找出员工在工作中的时间。 我需要一种方法来计算第一次和最后一次之间的差异,并忽略它们之间的logging。 这张表看起来像这样

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中,并且想要员工A在D1列中的持续时间,则此公式将执行此操作:

 =MAX(IF(A1:A5="A",C1:C5))-MIN(IF(A1:A5="A",B1:B5)) 

将公式input到单元格后,而不是按Enter来退出光标,则需要按Ctrl+Shift+Enter使其工作。

我希望这有帮助?

编辑:我没有任何头,所以数据从第1行开始。

使用VLOOKUP有一个偷偷摸摸的方法 – 数据将不得不被sorting才能工作。

要find开始时间,这是一个easy =VLOOKUP("A",A2:C999,2,FALSE)
要find结束时间,我们必须find最后一个“A”logging,我们通过search超过“A”的一点点来实现: =VLOOKUP("A!",A2:C999,3,TRUE)
请注意VLOOKUP中的TRUE,因此它将返回小于我们search的下一个最大值,因此它将返回最后一个 “A”

从另一个减去一个,我们有等式:

 =VLOOKUP("A!",A2:C999,3,TRUE)-VLOOKUP("A",A2:C999,2,FALSE) 

对于聘用“A”,假设您的列是A:AC:C (date被识别为这样,而不是文本):

 = SUMIF(A:A; "A"; C:C) - SUMIF(A:A; "A"; B:B)