我列出一堆数字列。 我怎样才能选择一列中的值的前30%的平均水平:
'Values'
10
9
8
7
6
5
4
3
2
1
这样,顶部30%是'10,9,8' 和所述平均值(10 + 9 + 8)/ 3 = 9
我列出一堆数字列。 我怎样才能选择一列中的值的前30%的平均水平:
'Values'
10
9
8
7
6
5
4
3
2
1
这样,顶部30%是'10,9,8' 和所述平均值(10 + 9 + 8)/ 3 = 9
在Excel中的任何版本,你可以使用沿着相同的路线肖恩的建议,即无论是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确认
这些都应该得到相同的结果
如果您使用Excel 2007或更新, =AVERAGEIF(A2:A10,">"&PERCENTILE(A2:A10,0.7))
如果不使用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个。
您还可以通过包括列标题,然后选择做这没有公式:
数据>过滤>过滤制造商> 10 ...(前30%)
突出显示栏看到求和,平均值,计数,最大值。 (右键单击状态栏,如果没有显示选择“平均”。)
如果你想在单元格中的滤波平均值的结果,你可以用=SUBTOTAL(1,A2:A11)