只排序正数 - 最大到最小和最大仅排序负数 - excel中最小到最大

时间:2016-02-09 14:38:53

标签: excel

我有一组由正数和负数组成的数据。为简单起见,我们假设数据如下所示:

enter image description here

我想通过“仅前3位客户”的正数和负数对数据进行排序。所以报告看起来像这样:

enter image description here

我一直在尝试这样的公式,但这个公式并没有帮助我实现结果。 = IFERROR(LARGE(IF(A2:A13大于0,A2:A13, “”),ROW()), “”)

我的数据超过3000行,只需要前20-30个正数和前20-30个负数。

非常感谢任何帮助。

期待积极的回应。

谢谢, 内甚

2 个答案:

答案 0 :(得分:1)

你上面的公式过于复杂 - 但你走在正确的轨道上。

将此公式放在“正数”列的第2行中,然后向下拖动以查找要突出显示的项目数:

[~, ii] = unique(a);
ind = 1:numel(a);
ind(ii) = [];
a(ind) = {''};

请注意,我使用了ROW() - 1而不是ROW(),因为我们从第2行开始,因此第2行应该包含最大量,而不是第2大量。我还强迫它显示0否则会显示负数[即:如果你想要最大的5个数字,而第5个最大的是负数#]。

显示最小负公式的公式几乎相同:

=IFERROR(MAX(0,LARGE(A:A,ROW()-1)),"")

答案 1 :(得分:0)

这可以通过使用LARGE(range,k)SMALL(range,k)公式轻松实现,这些公式分别为您提供范围内第k个最大或第k个最小数字。

您可以将它们与ROW([range])函数结合使用,该函数为您提供所需范围的行号。如果您使用ROW(A1)作为前述函数的k,则向下拖动公式将产生ROW(A2)ROW(A3)等等,每行将为您提供期望的k值。

因此公式将如下所示:

最高正数

=LARGE($A$2:$A$13,ROW(A1))

底部负数

=SMALL($A$2:$A$13,ROW(A1))

然后你只需要将公式拖到附近的单元格中,你就会得到你的结果。

这种方法存在一个问题 - 如果你想获得20个正数,但只有10个正数,那么该公式将给你20个顶部数字,无论它们是否为'重新正面或负面。但是,我相信你的情况,这是最简单,最快速的解决方案,这不应该是一个大问题。