用于在列中最早查找到最早日期的Excel公式

时间:2013-02-26 15:01:32

标签: excel excel-formula array-formulas

我在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

2 个答案:

答案 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