2015-05-15 50 views
1

我有在網站上研究這個問題,否則我仍然找不到正確的答案。Excel公式在池中查找最大日期並返回相應的值

Account  Date   Status 
115937  4/29/2015 BegunFlow 
116448  5/5/2015 EnrollmentRejected 
116448  4/9/2015 Rejected 
116523  4/24/2015 EnrollmentRejected 
120070  4/29/2015 BegunFlow 
120070  5/2/2015 BegunFlow 
1736792  4/29/2015 Inactive 
1736792  5/1/2015 BegunFlow 
2755700  4/24/2015 EnrollmentSubmitted 
10418622 4/9/2015 CreditFail 
25058075 5/5/2015 Active 
25058075 4/9/2015 Pending Start 
34359030 4/9/2015 Pending Start 
34362064 4/9/2015 Pending Start 
161020809 4/9/2015 CreditFail 
161020809 4/9/2015 CreditFail 
161020809 4/10/2015 PreenrollmentCancel 
405423048 5/9/2015 CreditFail 
405423048 4/9/2015 CreditFail 
415096105 4/9/2015 Waiting Termination 
651119087 4/9/2015 Active 
858051162 4/9/2015 Active 
949429029 4/9/2015 Active 
949429029 4/10/2015 Rejected 

這是我一直在努力做的一個數據樣本。我希望能夠將帳戶列與日期列中的最近日期相匹配,並返回相應的狀態列。

這是我曾嘗試

=VLOOKUP(MAX(IF($A:$A=E1,$B:$B)),$B$1:$C$24,2,0) 

用這個公式是它的日期轉換爲數字的問題的公式。我有大排。

+0

列E1中有什麼? – WorkSmarter

回答

0

問題不在於將日期轉換爲數字。問題來自將數組公式的輸出轉換爲輸入。

如果您將MAX/IFVLOOKUP分開,它將起作用。只需將您正在查找的MAX的輸出轉換爲一個單元格,然後將該單元格用作VLOOKUP的輸入。

0

您可以使用Array公式與Match和Index結合使用。

類似於:=INDEX($C:$C,MATCH(MAX(IF($A:$A=$E$1,$B:$B,0)),IF(A:A=$E$1,$B:$B,0),0)) 應該工作。您需要通過按Ctrl-Enter來完成編輯,將其作爲Array公式輸入。

基本上這是創建一個過濾日期列(IF($A:$A=$E$1,$B:$B,0)),挑選最大,找到行(INDEX),然後使用該查找在列C(MATCH)。

+1

儘管我強烈建議不要在數組公式中使用整個列引用。該設置將被迫計算超過兩百萬個單元。與例如COUNTIF(S)/ SUMIF(S),數組公式計算傳遞給它們的所有單元格,無論技術上是否超出這些範圍內最後使用的單元格。 –

+0

完全同意,並會限制範圍的大小。 – JDunkerley

0

以下是使用提供的樣本數據制定的。

如果我的理解是正確的,你要找的是一個返回\公式突出了以下幾點:

Account Date  Status 
405423048 05/09/2015 CreditFail 

然而,也注意到,有幾個賬戶共享一個共同的日期,因此在這樣一個場景,上述記錄不存在,那麼最新的日期是05/09/2015,最新記錄的結果會是這樣的:

Account Date  Status 
116448 05/05/2015 EnrollmentRejected 
25058075 05/05/2015 Active 

那麼我在這裏特別指出的是,有分的結果噸,最新的狀態更新可能是一個範圍\陣列與幾個記錄

現在,說清楚,我們可以有至少兩種輸出:

  1. 亮點,標誌,在結果記錄源數據
  2. 生成與結果記錄單獨的範圍\陣列

下面提出的公式將成爲這兩個要求(請讓知道,如果你的要求確實是不同的東西)

首先,我們應該添加一個字段(所謂的「最新」)的源數據,以反映公式的結果,我們使用列「d」,在這一領域輸入每個記錄下面的公式(這不是一個FormulaArray)

=IF(B7=MAX($B:$B),"Latest Record","") 

按{F9}(如果使用手工計算),那麼所有最新的更新記錄將被在源數據領域下的「標記」Latest Records最新

此,在這裏,滿足輸出1

如果要求則輸出2:使用字段「最新」,其值爲‘最新記錄’ 篩選源數據, 選擇源數據中的VisibleCell然後將VisibleCell的範圍粘貼到目標目標。

但是,由於這似乎是一個重複的任務,我建議創建一個宏來完成它。

相關問題