获得一列中前30%的平均值
我有一列列出了一堆数字。 我怎样才能select一列中前30%的平均值:
'Values' 10 9 8 7 6 5 4 3 2 1
所以,前30%是“10,9,8”,平均值是(10 + 9 + 8)/ 3 = 9
在任何版本的Excel中,您都可以使用SUMIF / COUNTIF和Sean的build议一样,即
=SUMIF(A1:A10,">"&PERCENTILE(A1:A10,0.7))/COUNTIF(A1:A10,">"&PERCENTILE(A1:A10,0.7))
或更短的“arrays公式”
=AVERAGE(IF(A1:A10>PERCENTILE(A1:A10,0.7),A1:A10))
用CTRL + SHIFT + ENTER确认
这些都应该给出相同的结果
如果您使用的是Excel 2007或更高版本,则=AVERAGEIF(A2:A10,">"&PERCENTILE(A2:A10,0.7))
不使用VBA:
将数据放入A列
创build这个中间列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。
您还可以通过添加列标题并select以下内容来执行此操作:
数据>filter>数字filter>前10名(前30%)
突出显示列以查看总和,平均值,计数,最大值。 (右键点击状态栏,如果不显示,select“平均”。)
如果你想在一个单元格中过滤平均的结果,你可以使用=SUBTOTAL(1,A2:A11)