Google 工作表 - return 范围 A 中的 N 个第一个值的公式,其中 MAX(范围 B)

Google Sheets - formula to return N first values from range A where MAX(range B)

F1:N1 随机数(可以重复)。
F2:N2 已排序数字。
需要一个公式来用 F2:N2 中的值填充 A1:C1,其中 F1:N1 具有最大值。
在示例中,它应该是来自 F2:N2 的 1,8,3 - 根据来自 F1:N1.

的 9,9,8
_ A B C D E F G H I J K L M N
1 ? ? ?     9 3 8 1 5 5 3 9 8
2           1 2 3 4 5 6 7 8 9

A1= INDEX($F:$N,MATCH(COLUMN(A1),$F:$N,0))中的公式,拖到C1
F3= RANK(F1,$F:$N)+COUNTIF($F:F1,F1)-1里的公式拖到N3

您可以使用 "helper row" 来创建独特排名列表:

F3:  =RANK(F1,$F:$N)+COUNTIF($F:F1,F1)-1
  and fill right to N3

由于 F2:N2 中的值是连续的 {1...8},您可以使用此公式:

A1:  =MATCH(SMALL($F:$N,COLUMNS($A:A)),$F:$N,0)
  and fill right to C1

如果 F2:N2 中的值是随机的,那么您可以使用:

A1:   =INDEX($F:$N,1,MATCH(SMALL($F:$N,COLUMNS($A:A)),$F:$N,0))
   and fill right to C1

没有人主动提供 Google 表格解决方案,所以这里有一个:

=query(transpose(sortn(transpose(F1:N2),3,,1,false,2,true)),"select Col1,Col2,Col3 limit 1 offset 1")

在A1。这是一个自扩展公式,因此不需要跨行填充,也不需要辅助行。

编辑

'Limit 1'可以省略,如注释中所述。

还有这个短一点:

=transpose(query(sortn(transpose(F1:N2),3,,1,false,2,true),"Select Col2"))