如果某列的销售额位居前 50%,那么如何找到该列中第二小的值?

如果某列的销售额位居前 50%,那么如何找到该列中第二小的值?

我在 Excel 中有一个表格,其中显示了代理商的销售额同比变化百分比,我需要能够快速指出谁的变化第二小,但前提是他们位于销售额的前 50%,我可以通过说出变化百分比在哪里并表示销售额百分比=MINIFS来找到最小值。我似乎找不到一种方法来使用这种逻辑来找到第二或第三小值,如果列中第二小的金额是多少?=MINIFS($A:$A,$B:$B,"<.5",$B:$B,">0ABB<.5A

答案1

使用 AGGREGATE:

=AGGREGATE(15,7,A:A/((B:B<.5)*(B:B>0)),2)

这是使用 SMALL 公式,最后一位数字2表示k您想要的排名,在本例中是第二小的。

这将创建一个数字和错误的数组,数字是满足条件的 A:A 的值,而错误则是除以 0 得到的,即不满足条件的错误。

AGGREAGATE 忽略错误并返回第二低的值。

Jos Woolley 关于在自然数组类型公式中使用完整列范围引用的说明

在您的帖子中添加一条评论,让读者知道您对整列引用的使用只是一个例子,在实践中应该用较小的范围来代替。并非所有用户都知道,使用整列引用对于 MINIFS(它使用传递范围内最后使用的单元格的隐式检测)来说是完全没问题的,但对于 AGGREGATE(它不使用上述隐式检测,因此被迫处理传递的所有 1,048,576 个单元格)来说就不行了。

相关内容