我在excel中有一列数据,我需要取最低10%的平均值。我的数据是:
1
2
3
4
5
6
7
8
9
10
所以底部30%的平均值是 - (1 + 2 + 3)/ 3 = 2.有没有办法在excel中自动执行此操作,我所要做的就是给它我想要的百分比和它给了我答案?
答案 0 :(得分:3)
更简单的版本:无需阵列公式或间接
假设列A
中的数据,以及单元格B1
中所需的百分比(作为小数)
=AVERAGEIF(A:A,"<="&SMALL(A:A,COUNT(A:A)*B1))
答案 1 :(得分:2)
当你说“我需要做的就是给出我想要的百分比并且给我答案”时,我并不完全确定你在寻找什么,但你可以试试AVERAGEIF
:
=AVERAGEIF(A1:A10,"<="&COUNTA(A1:A10)*0.3)
假设数据在A1:A10
范围内。您可以获得0.3的百分比参考。
=AVERAGEIF(A1:A10,"<="&COUNTA(A1:A10)*B1)
如果您将百分比放在B1
中,则公式会相应更改。
答案 2 :(得分:2)
假设您的数据位于A1:A10,并且您所需的百分比位于B1:
=AVERAGE(SMALL(A1:A10,ROW(INDIRECT("1:"&(B1*COUNT(A1:A10))))))
注意!这是一个数组公式!这意味着您必须进入顶部的公式栏(不在单元格中),并在完成后按 ctrl shift enter 。
这会将公式包装在这些{}中,所以你知道你做得对。输入它们不起作用,你必须按ctrl + alt + enter!
它是如何运作的?
ROW(INDIRECT("1:"&(B1*COUNT(A1:A10))))
Count会检查列表中有多少项,因此它知道需要平均的数量。假设B1是40%。
10项中有40%是4项,但20项中有40%是8项。
由于长达10个条目,我们将创建一个“数组”,一系列数字从1到4(40%)。
*SMALL(A1:A10*
SMALL找到范围内的* n *最小数字。使用我们的1到4数组,它将找到最低的4个条目。
AVERAGE(
然后我们平均结果:)