2014-04-01 44 views
0

我有一個Excel文件:如果單元等於範圍內的任何細胞

A    B  C   D  |E   F 
1| 27/50/4832 let last,first 6786746 |08/29/1232 1243123 
2| 25/30/9852 let last,first 3453453 |08/23/1325 2453434 
3| 05/10/9831 let last,first 2453434 |08/03/1256 6786746 
4| 15/00/9341 let last,first 2342352 |09/45/1259 2453434 

我想說

if a value from column f matches any from column D 
then in column G write the date from E. 

這裏的狀況的一點就是在F這一切都是獨特。如果它不是唯一的,我們會採取最新的日期。正如你在上面看到的,2453434在F中重複兩次。所以G3會說08/23/1325,因爲它顯然發生在將近100年之後。

我有一些嘗試(顯然令人難以置信的簡單化),這是不工作,我不能讓它甚至開始做我想做的事情。因此無法得到最近日期的更復雜情況。

=IF(F:F=D1,E1,"") 
=IF(MATCH(D1,F:F,0),E1,"") 
=IF(VLOOKUP(D1,F:F,1,FALSE)=D1,E:E,"die") 

如果可能,我寧願不使用vb​​a。但我接受這個建議。

+0

那些真的是你的日期嗎?或者那些僅僅是虛擬日期,而您使用的真實日期是真實日期? – Jerry

回答

0

我會用這樣的:

=INDEX(E:E,MATCH(1,(E:E=MAX(IF(F:F=D1,E:E,0)))*(F:F=D1),0)) 

假設你的日期是正確的。

而且,上面是一個數組公式,這意味着,使其正常工作,你將不得不持有按Ctrl +公式中鍵入回車後

PS:適當更改範圍,即E:E和F:F。如果您有200行,分別使用E$1:E$200F$1:F$200,以便公式不需要計算永恆。

這將從列E中檢索最新的日期,其中來自列D的值與來自F的值相匹配。

例如,它會說,在G1,08/03/1256(假設有效日期),因爲F3匹配D1和將投入G3,08/23/1325(假設有效日期),因爲這兩個F2和F4匹配D3,而F2是以後的日子。

+0

'假設有效日期' - 我不確定它們如何可以成爲有效日期,因爲excel分鐘日期是01/01/1900。正如我所看到的,他們被存儲爲文本 –

+1

@simoco一個有效的日期將是'01/04/04',但是OP想要僅僅爲了舉例而使用'假日期'。 – Jerry

+0

我沒有看到OP在Q –

0

假設您的真實數據,你有正確的日期,用這一個:

=IFERROR(LARGE(IF(D1=F:F,E:E,""),1),"") 

CTRL + SHIFT + ENTER

如果您有日期像你上面的例子,超出範圍的Excel(在Excel的最短日期爲01/01/1900)獲取最大日期是一個真正的問題(actulally我不知道它是否是r eally日期,因爲你有09/45/1259,其中45不能是一個月中的某天)。

但是,您可以在G1使用這個怪物公式:

=IFERROR(MID(LARGE(IF(D2=$F$1:$F$4,VALUE(RIGHT($E$1:$E$4,4)&LEFT($E$1:$E$4,2)&MID($E$1:$E$4,4,2)),""),1),5,2) & "/" & 
     RIGHT(LARGE(IF(D2=$F$1:$F$4,VALUE(RIGHT($E$1:$E$4,4)&LEFT($E$1:$E$4,2)&MID($E$1:$E$4,4,2)),""),1),2) & "/" & 
     LEFT(LARGE(IF(D2=$F$1:$F$4,VALUE(RIGHT($E$1:$E$4,4)&LEFT($E$1:$E$4,2)&MID($E$1:$E$4,4,2)),""),1),4),"") 

按CTRL + SHIFT + ENTER 對其進行評估,並拖下來。 您還可以使用addtional專欄爲LARGE(..)製作更短,更快的配方。請注意,我使用的是$F$1:$F$4而不是F:F,因爲它使公式要快得多。

相關問題