Excel 前50%中的最低值

Excel 前50%中的最低值,excel,excel-formula,Excel,Excel Formula,我正在制作一个山中之王/淘汰括号电子表格&我有一个单元格,我想返回前50%的最后一个分数。有人知道怎么做吗 我有一个计算范围平均值的公式,不包括0,但这并不准确,因为它实际上没有显示最低分数=AVERAGEIFF9:G667,0您描述的是百分位数。Excel的百分位函数进行插值,所以我不确定它是否适合您的用例 看 至少,您可以计算百分位数,然后取所有过滤值的最低分数,使其高于插值的第50个百分位数 下面是一个稍微聪明的实现: 假设您的数据在C2:C11范围内 在c13中,我们将计算第50个百分位

我正在制作一个山中之王/淘汰括号电子表格&我有一个单元格,我想返回前50%的最后一个分数。有人知道怎么做吗


我有一个计算范围平均值的公式,不包括0,但这并不准确,因为它实际上没有显示最低分数=AVERAGEIFF9:G667,0

您描述的是百分位数。Excel的百分位函数进行插值,所以我不确定它是否适合您的用例

至少,您可以计算百分位数,然后取所有过滤值的最低分数,使其高于插值的第50个百分位数

下面是一个稍微聪明的实现:

假设您的数据在C2:C11范围内

在c13中,我们将计算第50个百分位为=百分位C2:C11,0.5 在d列中,我们将使用IF语句从c列中选择相邻的值,或者选择非常大的数字,这取决于该值是否大于百分位。例如,=IFC2>加元13,C2400000

现在我们可以取d列的最小值:=MIND2:D11


唯一聪明的一点是,当c列中的值小于百分位数时,使用一个巨大的数字,这样它实际上对min操作不可见。

前50%中的最后一个分数是第k个最大的项目,其中k是项目数除以2。Excel有一个名为LARGE的有用函数,它返回第k个最大的项。它还有一个更有用的函数,名为AGGREGATE,它可以让你做一些事情,比如求和、计数、平均值、大值、小值等等,但是可以跳过隐藏的行或错误值

因此,要获得忽略错误值的列表的第k项,我们将使用=AGGREGATE15,6,F9:G667,k-当然,这不会跳过0,因为0不是错误。但是,你知道这是什么吗?除以0。所以,如果我们做F9*F9/F9,那么我们要么得到F90的F9,要么得到DIV/0!错误

这意味着我们的函数是=AGGREGATE15,6,F9:G667*F9:G667/F9:G667,k,但我们仍然需要确定k的值。如果我们有3个项目,那么我们需要第二个项目,如果我们有6个项目,那么我们需要第六个项目-因此,对于n个项目,我们需要项目n÷2,四舍五入。嗯,这就是ROUNDUP函数的作用

尽管如此,我们仍然需要知道n是什么——但这很简单。它只是列表中非0项的数量,如果列表不能包含负数,则为COUNTIFF9:G667,0或>0

将其全部插在一起,我们可以得到:

=AGGREGATE(15, 6, F9:G667*F9:G667/F9:G667, ROUNDUP(COUNTIF(F9:G667,"<>0"), 0))

您好,谢谢您的快速回复。我尝试了这个,但是由于数据中有空格,它只是返回一个0的值。实际上,我刚刚尝试了一个范围为10个单元格1-10的测试,结果返回了5.5,而我要查找的数字是5,因为这是前50个百分位中的底部数字。嗯。数据中的零是有问题的。中位数也被定义为“第50百分位”,但excel的中位数插值实现也是如此。我将删除此答案,以便更多人查看您的问题。