如何按顺序排列相邻的 3 个最小数字?

如何按顺序排列相邻的 3 个最小数字?

我需要 3 个最小数字和对应的单元格。如您所见,前两个 2 是A,最后一个是O,但输出A结果还是给了我。我想从上到下获取它们,所以我的输出应该是A, A, O,而不是A, A, A。以下是这些 的公式A, A, A。谢谢。

=VLOOKUP(SMALL($E$26:$E$34;1); $E$26:$F$34; 2; 0)
=VLOOKUP(SMALL($E$26:$E$34;2); $E$26:$F$34; 2; 0)
=VLOOKUP(SMALL($E$26:$E$34;3); $E$26:$F$34; 2; 0)

答案1

以下是实现此目的的一种方法:

=INDEX(SORTBY(FILTER(E26:F34,E26:E34<=SMALL(E26:E34,3)),FILTER(E26:E34,E26:E34<=SMALL(E26:E34,3)),1),SEQUENCE(3),2)

第一个过滤器从两列中选取符合条件的单元格(如果存在“平局”,则可能超过三列)。第二个过滤器仅提供第一列对SORTBY排序范围的贡献。如果与第一个结果中的任何一个存在“平局”,则此排序将保持原始顺序,而不是对字母列进行二次排序。这意味着平局中的第一个/较高/顶部元素排在第一位。

INDEX然后,只需从任意多个符合条件的字母中选取前三个,如果两个值组成了三个最小值,并且两个值中较大的一个有两次或两次以上平局,则只选取字母中最大的一个。我很难说,但这就是你要求的。

答案2

如果您有 Excel 365,则可以组合使用TAKESORT函数。

=TAKE(SORT(E26:F34),3,-1)
  • SORT(E26:F34):按升序对数组进行排序(按第一列升序排序,因为其他参数未规定)。
  • TAKE(SORT(E26:F34),3,-1:从结果排序数组中,选择前 3 行并选择最后一列(-1)。

相关内容