前50%中的最低值

时间:2018-03-13 00:56:54

标签: excel excel-formula

我正在制作一个山丘之王/消除支架电子表格&我有一个单元格,我想要返回剪辑(最后得分在前50%)。有谁知道如何解决这个问题?

我有一个范围平均值的公式,不包括0,但这并不准确,因为它实际上并没有显示最低分数。 = AVERAGEIF(F9:G667, “<大于0”)

2 个答案:

答案 0 :(得分:0)

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

请参阅https://support.office.com/en-us/article/percentile-function-91b43a53-543c-4708-93de-d626debdddca

至少,您可以计算百分位数,然后将过滤后的所有值的最小分数置于插值的第50百分位数之上。

这是一个稍微聪明的实现:

假设您的数据位于C2:C11

范围内

c13中,我们将第50个百分点计算为=PERCENTILE(C2:C11, 0.5) 在专栏d中,我们将使用IF语句从列c中选择相邻值,或者选择非常大的数字,具体取决于值是否大于百分位数。例如,=IF(C2 > $C$13,C2,400000)

现在我们可以使用列d的最小值:=MIN(D2:D11)

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

答案 1 :(得分:0)

前50%中的最后一个分数是 k 最大项目,其中 k 是项目数除以2.Excel有一个名为{{的有用函数1}},返回 k 最大的项目。它还有一个名为AttributeError: 'InstrumentedList' object has no attribute 'email'的偶数更多有用函数,可让您执行LARGEAGGREGATESUMCOUNT等操作,AVERAGE等 - 但跳过隐藏的行或错误值。

因此,要获取列表中的 k 项(忽略错误值),我们将使用LARGE - 当然,这不会跳过SMALL,因为=AGGREGATE(15, 6, F9:G667, k)不是错误。但是,你知道是什么? 除以0 。因此,如果我们执行0,那么我们将获得0 F9<> 0 )或 #DIV / 0!错误。

现在这意味着我们的函数是F9*F9/F9,但我们仍需要确定 k 的值。好吧,如果我们有3个项目,那么我们想要第2个,如果我们有6个项目,那么我们想要第6个 - 所以,对于 n 项目我们想要项目 n ÷ 2,四舍五入。嗯,这就是F9函数的用途!

但是,我们需要知道 n 是什么 - 但这很简单。它只是列表中非0项的数量,或=AGGREGATE(15, 6, F9:G667*F9:G667/F9:G667, k)(如果您的列表不能包含负数,则为“>”>“0”)

将它们全部插在一起,我们得到了这个:

ROUNDUP