我在Excel中有一个数据查询,它为单个员工返回多行信息。员工按EmployeeID排序,数据包含薪资和日期。
我按日期降序对信息进行了排序,以便为员工提供第一个工资率,以便将其放入我工作簿中另一张工作表的VLookUp中。现在我需要一个公式来给我下一个日期排队,这样我就可以找到该范围内的第二个最早的日期。可以这样做吗?
Data example:
1255 7.50 06/11/2012
1255 7.00 09/11/2011
1255 6.50 05/12/2011
2548 12.50 03/02/2012
2548 12.00 01/13/2012
答案 0 :(得分:0)
而不是VLOOKUP
使用INDEX/MATCH
!
说你当前的公式是:
=VLOOKUP(A1,Sheet1!A:C,3,0)
这可以转换为
=INDEX(Sheet1!C:C,MATCH(A1,Sheet1!A:A,0))
它做同样的事情(在A中搜索匹配并从C列返回结果)。 现在您可以轻松获得下一场比赛:
=INDEX(Sheet1!C:C,MATCH(A1,Sheet1!A:A,0)+1)
如果你想测试它是否仍然是同一名员工(在B栏),公式有点复杂:
=IF(INDEX(Sheet1!B:B,MATCH(A1,Sheet1!A:A,0))=INDEX(Sheet1!B:B,MATCH(A1,Sheet1!A:A,0)+1),INDEX(Sheet1!B:B,MATCH(A1,Sheet1!A:A,0)+1),"Only one entry!")
答案 1 :(得分:0)
您想要日期或工资率吗?如果是日期,那么如果您在F2中有员工ID,并且在F2中有该员工的第一个日期(由VLOOKUP提取),那么此公式将给出第二个日期
=VLOOKUP(E2,IF(Sheet1!C$2:C$100>F2,Sheet1!A$2:C$100),3,0)
通过CTRL+SHIFT+ENTER
您可以用同样的方式获得下一个日期 - 如果没有该员工的另一个日期,您将获得#N / A