我有一张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-Jan 5:30
A 2-Jan 6:32 2-Jan 10:30
A 2-Jan 11:00 2-Jan 4:25
B . .
.
. . .
任何帮助将不胜感激
答案 0 :(得分:1)
假设数据位于A,B和C列,并且您希望D1列中的员工A
的持续时间,则此公式将执行此操作:
=MAX(IF(A1:A5="A",C1:C5))-MIN(IF(A1:A5="A",B1:B5))
将公式输入单元格后,您需要按Enter
才能使其运行,而不是按Ctrl+Shift+Enter
来转义光标。
我希望这有帮助吗?
编辑:我没有假设任何标题,因此数据从第1行开始。
答案 1 :(得分:1)
使用VLOOKUP
有一种偷偷摸摸的方式 - 必须对数据进行排序才能使其正常工作。
要查找开始时间,这很简单=VLOOKUP("A",A2:C999,2,FALSE)
要查找结束时间,我们必须找到最后的“A”记录,我们通过搜索比“A”更多的内容来执行此操作:=VLOOKUP("A!",A2:C999,3,TRUE)
注意VLOOKUP中的TRUE,因此它将返回小于我们搜索的下一个最大值,因此它将返回 last “A”
从另一个中减去一个,我们有等式:
=VLOOKUP("A!",A2:C999,3,TRUE)-VLOOKUP("A",A2:C999,2,FALSE)
答案 2 :(得分:0)
对于雇用“A”,假设您的列为A:A
到C:C
(并且日期被识别为,而不是文字):
= SUMIF(A:A; "A"; C:C) - SUMIF(A:A; "A"; B:B)