2012-06-01 84 views
2

我有一列列出了一串數字。我怎樣才能在一列中選擇的值的前30%的平均:獲得一列中前30%值的平均值

'Values' 
10 
9 
8 
7 
6 
5 
4 
3 
2 
1 

這樣,頂部30%是'10,9,8' 和所述平均值(10 + 9 + 8)/ 3 = 9

回答

6

在Excel的任何版本,你可以使用一個沿着相同的線作爲Sean的建議SUMIF/COUNTIF,即

=SUMIF(A1:A10,">"&PERCENTILE(A1:A10,0.7))/COUNTIF(A1:A10,">"&PERCENTILE(A1:A10,0.7))

或更短的 「數組公式」

=AVERAGE(IF(A1:A10>PERCENTILE(A1:A10,0.7),A1:A10))

證實CTRL + SHIFT + Enter

這些都應該給予相同的結果

1

在不使用VBA:

將數據放入塔A.

創建該中間柱B:

B1=IF(RANK(A1,$A$1:$A$10)<=30*COUNT($A$1:$A$10)/(100), A1,0) 
    B2=IF(RANK(A2, ... 

然後平均此列有:

=AVERAGEIF(B1:B10,">0") 

爲您給出的例子,你得到9

4

如果您使用的是Excel 2007或更高版本,=AVERAGEIF(A2:A10,">"&PERCENTILE(A2:A10,0.7))

0

您還可以通過包括列標題,並選擇這樣做沒有公式:

數據>過濾器>數字過濾器> Top 10 ...(前30%)

突出顯示列以查看總和,平均值,計數,最大值。如果你想在單元格中的濾波平均值的結果,你可以使用(右鍵單擊狀態欄,如果沒有顯示選擇「一般」。)

=SUBTOTAL(1,A2:A11)