Arrays 当数字重复时,如何找到数组中第n个最低的数字?

Arrays 当数字重复时,如何找到数组中第n个最低的数字?,arrays,excel,Arrays,Excel,我正在努力寻找这个列表中第二低的成本。很明显,它是547美元,但当我把公式放在:=SMALL(F2:F31,2)中时,我得到了488.00美元,我猜这是因为$488重复了很多次,所以它是数字列表中第二个最小的数字 即使重复,我应该输入什么公式来获得第二小的数字?这是为了什么?最终结果如何?你是寻求自动化还是这是临时性的 如果这是临时性的,您可以执行以下操作: 1. copy column with numbers 2. Paste copied column into new sheet 3.

我正在努力寻找这个列表中第二低的成本。很明显,它是547美元,但当我把公式放在:=SMALL(F2:F31,2)中时,我得到了488.00美元,我猜这是因为$488重复了很多次,所以它是数字列表中第二个最小的数字


即使重复,我应该输入什么公式来获得第二小的数字?

这是为了什么?最终结果如何?你是寻求自动化还是这是临时性的

如果这是临时性的,您可以执行以下操作:

1. copy column with numbers
2. Paste copied column into new sheet
3. Use Remove Duplicates functionality (Data tab) on this column to remove repetitions
4. Use your formula
此外,您可以使用一个公式:

=SMALL(F2:F31, COUNTIF(F2:F31, MIN(F2:F31)) + 1)

只要您只需要第二个最小的数字,并且只有2个具有重要影响的数字,就可以相当有效地执行此操作,而无需创建额外的数据数组或使用数组公式,只要您可以从最大到最小(而不是从最小到最大)重新排序

首先,找到最小的数字,即:

=MIN(F:F)
然后,从该金额中减去1便士。我们现在可以使用price is right规则搜索最接近的数字,利用MATCH函数的次优功能,如下所示:

=INDEX(F:F,MATCH(MIN(F:F)+0.01,F:F,-1))

这将取F列中的最小数字,并将其加上.01。在MIN函数中使用-1作为第三个参数会迫使MIN接受下一个最佳的替代方案,如果这个数量不完全匹配。

只是因为我根据您的计算,我们正朝着这个方向前进。正如我在那篇文章中所说的那样,我将列出你们所有的州和县

然后在@Andrew公式的基础上构建,该公式应标记为正确的,并在SMALL()中使用COUNTIFS()作为k值:

这将为您提供第二个值的清晰列表

然后,要找到与报价相符的保险公司,请使用:

=INDEX(DATA!E:E,MATCH(SMALL(IF(A2=DATA!A:A,IF(B2=DATA!B:B,DATA!F:F)),COUNTIFS(DATA!A:A,A2,DATA!B:B,B2,DATA!F:F,MIN(IF(A2=DATA!A:A,IF(B2=DATA!B:B,DATA!F:F))))+1),IF(A2=DATA!A:A,IF(B2=DATA!B:B,DATA!F:F)),0))

把它们放在第二排。这些都是数组公式,需要使用ctrl-shift-enter键确认。然后可以根据需要将它们复制下来。

谢谢Andrew和@ScottCraner。我希望我知道这些公式的含义,或者我自己如何得出它们……关于如何在这里学习逻辑,有什么建议吗?@MelloYellow最好的方法是分解每一个公式,并使用谷歌的帮助来了解每一个部分在做什么。但是你应该检查一个是否正确。谢谢你仔细检查。我假设如果我有三个影响的有效数字,我可以在第二步中这样做:=INDEX(F:F,MATCH(MIN(F:F)+1.00,F:F,-1))正确吗?@MelloYellow如果你有三个有效数字,那么我会使用=INDEX(F:F,MATCH(MIN(F:F)+.001,F:F,-1))。
=INDEX(DATA!E:E,MATCH(SMALL(IF(A2=DATA!A:A,IF(B2=DATA!B:B,DATA!F:F)),COUNTIFS(DATA!A:A,A2,DATA!B:B,B2,DATA!F:F,MIN(IF(A2=DATA!A:A,IF(B2=DATA!B:B,DATA!F:F))))+1),IF(A2=DATA!A:A,IF(B2=DATA!B:B,DATA!F:F)),0))