2013-03-21 248 views
1

是否有更簡單的方法來完成此任務?日期範圍內的VLOOKUP日期

我想查看列表中的值和日期,並返回日期,如果它匹配或在原始日期的5天內。

到目前爲止,我能做到這一點的唯一方法是創建一個助手鍵(A1)並在助手鍵列表(F:F)中查找助手鍵,並將IFERROR添加到再看一遍,但加1,依此類推。

實施例:

A   B   C   D 
1 table1_ky table1_id table1_dt vlookup 
2 99941275 999   1/1/2013 1/3/2013 


    G   H   I 
1 table2_ky table2_id table2_dt 
2 99941277 999   1/3/2013 

式在D2:

= IFERROR(VLOOKUP(TEXT(A2,0),F:H,3,0),IFERROR(VLOOKUP(TEXT( A2 + 1,0),F:H,3,0),IFERROR(VLOOKUP(TEXT(A2 + 2,0),F:H,3,0),「否」)))

我希望能夠使「+1」的數量變化,因此我可以將日期範圍更改爲5,10,30等,而不必使用多達30條IFERROR語句。

在Excel中是否有一個函數可以做這樣的事情?

我想盡量避免使用VBA。

+0

......是您在升序/數據日期或降序 「隨機」 – 2013-03-21 22:02:41

回答

3

你可以使用一個查找公式這樣

=IFERROR(LOOKUP(2,1/(G$2:G$100=B2)/(H$2:H$100>=C2)/(H$2:H$100<=C2+5),H$2:H$100),"no")

這會發現在H2的最後日期:H100是C2和C2 + 5並在列G值也匹配之間 - 不需要任何「串聯」的幫助列,您可以將5調整爲您想要的任何值。

通過「最後」我的意思是在位置上 - 如果你想在多場比賽的情況下(這是您當前的公式做什麼)的最早日期,然後切換到「數組公式」是這樣的:

=IFERROR(SMALL(IF((G$2:G$100=B2)*(H$2:H$100>=C2)*(H$2:H$100<=C2+5),H$2:H$100),1),"no")

CTRL + SHIFT 證實 + ENTER

+0

謝謝巴爾Y!這工作得很好。我測試了不同的日期和變量,它是成功的。現在來分析一下它,看看它是如何工作的:) – amalyze 2013-03-21 23:06:22