2013-02-26 281 views
0

我在Excel中有一個數據查詢,它返回單個員工的多行信息。員工按照EmployeeID排序,數據包含薪資和日期。用於在列中查找第二個最早日期的Excel公式

我已按日期降序對信息進行了排序,以便爲員工在我的工作簿中放入其他工作表的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

我假設第一次約會應該是06/11 /'2011' – 2013-02-26 15:32:17

回答

0

代替VLOOKUP使用INDEX/MATCH

說你目前的計算公式爲:

 
=VLOOKUP(A1,Sheet1!A:C,3,0) 

這可以轉換爲

 
=INDEX(Sheet1!C:C,MATCH(A1,Sheet1!A:A,0)) 

它做同樣的事情(搜索在一個匹配,並返回從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!") 
+0

謝謝!爲快速反應!這很好,但我可以根據標準設置另一個問題嗎?意思如果我的員工多次被僱用並重新僱用,我可以說「在此日期之後找到下一個日期?」 – designspeaks 2013-02-26 15:18:32

+1

試試我的建議 - 在F2中輸入日期,然後在E2中爲員工獲取下一個日期。如果您希望該日期的價格而不是日期本身,請將「列索引」從3更改爲2 – 2013-02-26 16:21:25

0

待辦事項你想要日期還是工資率?如果它的日期,那麼如果你有在F2該員工在E2員工ID和第一次約會(由VLOOKUP提取),那麼這個公式將給予第二次約會

=VLOOKUP(E2,IF(Sheet1!C$2:C$100>F2,Sheet1!A$2:C$100),3,0)

證實CTRL+SHIFT+ENTER

你可以用相同的方式獲得下一個日期 - 如果沒有該員工的另一個日期,您將獲得#N/A

相關問題