在Excel中取最低的n%的平均值
我在excel中有一列数据,我需要把最低10%的平均值。 我的数据是:
1 2 3 4 5 6 7 8 9 10
所以最低30%的平均值将是 – (1 + 2 + 3)/ 3 = 2。是否有办法在excel中自动执行这个操作,我只需要给它多less百分比就可以了,回答?
更简单的版本:无需数组公式或间接要求
假设列A
数据和单元格B1
所需的百分比(作为小数)
=AVERAGEIF(A:A,"<="&SMALL(A:A,COUNT(A:A)*B1))
当你说'我所要做的就是给它多less百分比,我给出答案'的时候,我不完全确定你在找什么,但是你也可以试试AVERAGEIF
:
=AVERAGEIF(A1:A10,"<="&COUNTA(A1:A10)*0.3)
假设数据在A1:A10
的范围内。 您可以参考0.3的百分比。
=AVERAGEIF(A1:A10,"<="&COUNTA(A1:A10)*B1)
如果你把百分比放在B1
,那么公式也会相应地改变。
假设你的数据在A1:A10中,你想要的数据在B1:
=AVERAGE(SMALL(A1:A10,ROW(INDIRECT("1:"&(B1*COUNT(A1:A10))))))
注意! 这是一个数组公式! 这意味着你必须进入顶部的公式栏(不是在单元格中),并按下ctrl shift完成。
这将把这个公式包含在这些{}中,所以你会知道你做对了。 键入他们不起作用,你必须按Ctrl + Alt + Enter!
它是如何工作的?
ROW(INDIRECT("1:"&(B1*COUNT(A1:A10))))
Count会检查你的列表中有多less项,所以它知道需要平均多less个数字。 比方说B1是40%。
10项中的40%是4,但是20中的40%是8。
由于它是10个条目,我们将创build一个“数组”,从1到4(40%)的一系列数字。
*SMALL(A1:A10*
SMALL在一个范围内find* n *个最小的数字。 用我们的1到4的数组,它会find最低的4个条目。
AVERAGE(
然后我们平均的结果:)