2014-10-20 24 views
1

我正在嘗試僅查找最後3個實例的平均值。我正在使用AVERAGEIF語句,它將計算整個範圍的平均值,但我需要它僅計算它找到的最後3個實例(如果有少於3個實例,則計算得更少)。我需要G和H的整個列來獲得球隊最近3場比賽的平均水平。在Excel中使用AverageIf的尾隨平均值

這是我有:

=AVERAGEIF(B3:C17,B17,D3:E17) 

enter image description here

+0

人解釋爲什麼這個問題會得到一個downvote?爲什麼有人刪除了他們的答案..?這不是第一次有人在我的一個問題上刪除了他們的答案,他們是否也擔心會陷入低調? – Adam12344 2014-10-21 01:01:57

回答

2

你可以這樣做用數組公式(他們必須使用鍵輸入按Ctrl ++輸入)...

的基本步驟是:

  1. 找到該行(包括以上電流)是包含隊名第三高的行號(或使用第1行,否則)
  2. 使用您AVERAGEIFINDIRECT範圍從B- that_row到C - CURRENT_ROW和D_ that_row到E-CURRENT_ROW

所以在電池F17你將有公式

{=AVERAGEIF(INDIRECT("B"&LARGE(IF(--($B$3:B17=B17)+($C$3:C17=B17),ROW($B$3:B17),1),3)&":"&CELL("address",C17)),B17,INDIRECT("D"&LARGE(IF(--($B$3:B17=B17)+($C$3:C17=B17),ROW($B$3:B17),1),3)&":"&CELL("address",E17)))} 

我們重複一些邏輯,因爲我們有兩個範圍(標準範圍和平均範圍)。

  • IF(--($B$3:B17=B17)+($C$3:C17=B17),ROW($B$3:B17),1)意味着,如果列B或(使用+)柱C具有在B17的值,給我的行號,否則爲1(我們的< 3 ...的情況下我們這次可以3,隊名的第一行)
  • LARGE(...,3)會給我們第三高的這陣 - >有我們的隊名
  • INDIRECT("B"&...&":"&CELL("address",C17))會使用給我們的範圍內第三高的行號我們的第三個最高的行號當前行,列B和C
  • 然後我們做的完全一樣,你在AVERAGEIF正在做,但使用這種INDIRECT範圍和等價物列d和E

玩轉同樣的事情題!祝你好運。並記住使用Ctrl + Shift + 請輸入進入!

編輯以上是給一個#NUM!錯誤的前兩行 - 這是因爲LARGE功能正試圖獲得第三位的2數組!還注意到在某些情況下列數字需要是絕對的(即$),以便複製到離線列。所以更新的公式:

{=AVERAGEIF(INDIRECT("B"&LARGE(IF(--($B$3:$B17=B17)+($C$3:$C17=B17),ROW($B$3:$B17),1),MIN(3,ROW()-2))&":"&CELL("address",$C17)),B17,INDIRECT("D"&LARGE(IF(--($B$3:$B17=B17)+($C$3:$C17=B17),ROW($B$3:$B17),1),MIN(3,ROW()-2))&":"&CELL("address",$E17)))} 
  • 取代了3MIN(3,ROW()-2)使我們得到3如果有,但1或2,如果我們的前兩個數據行的一個
+0

我認爲這是一個很好的問題和一個天才的答案(我嘗試過,但最終得到了很多幫手專欄),所以他們都加了標記 – 2014-10-21 11:43:27

+0

這很好,謝謝。我遇到的唯一問題是前2行產生數字錯誤。有想法該怎麼解決這個嗎? – Adam12344 2014-10-22 01:11:16

1

OK我過早地公佈這並試圖刪除它時,我意識到這是行不通的。它現在應該工作....提供給你添加另一個條件,這是A列中的遊戲日期。請記住,這是一個數組公式,所以點擊ctrl + shift + enter。 A欄中的日期; B欄的團隊; D列中的統計數據。此公式可以位於工作表中的永久位置,因此您可以輸入團隊名稱(此處顯示爲F13)以獲取最近三次的統計數據。

= AVERAGE(VLOOKUP(LARGE(IF(B3:B24 = F13,A3:A24),1),A3:D24,4),VLOOKUP(LARGE(IF(B3:B24 = F13,A3: A24),2),A3:D24,4),VLOOKUP(LARGE(IF(B3:B24 = F13,A3:A24),3),A3:D24,4))