将 Sorting/Ranking 构建到索引匹配数组公式中?

Building Sorting/Ranking into an Index Match Array formula?

我正在尝试对数组索引匹配函数的结果进行排序,但运气不佳。

我的数据集是:

Salary (000s) | Team  | Player
500           | Bears | Frank
900           | Bears | Paul
1200          | Bears | Andy
100           | Bears | Greg
600           | Bears | Larry
900           | Tigers| Moe
1800          | Tigers| Harry
125           | Tigers| Vince

我想使用公式提取所有 Bears 球员按薪水降序排列的数组。我无法对 table 本身进行排序。

如果使用 Bears 作为目标团队,期望的结果如下:

Andy
Paul
Larry
Frank
Greg

这可能吗?我最接近的是下面的:

=IFERROR(INDEX($D:$D,LARGE(IF($C:$C=$F,ROW($D:$D)-MIN(ROW($D:$D))+1),ROWS($J:J3))),"")

问题是,这个公式只是按照列中出现的顺序提取名称。 (这同样不适用于我的特定情况。)理想情况下,我只想使用公式来解决此问题,以避免必须在数据表中构建辅助列。

如果有人能就如何改进此等式以按薪水降序提取姓名提供任何指导,我将不胜感激。非常感谢您的宝贵时间和帮助。

我尝试了什么:

E2中的公式:

=INDEX(SORT(FILTER(A2:C9,B2:B9="Bears"),,-1),0,3)

或者,已经TAKE() and DROP()的人可以试试:

=TAKE(SORT(FILTER(A2:C9,B2:B9="Bears"),,-1),,-1)

或:

=DROP(SORT(FILTER(A2:C9,B2:B9="Bears"),,-1),,2)

对于 Office 365 之前的 Excel 版本,您可以使用以下数组公式:

=IFERROR(INDEX(D:D,AGGREGATE(15,6,1/(($C:$C=$F)*($B:$B=LARGE(IF($C:$C=$F,$B:$B),ROWS(:1))))*ROW($D:$D),1)),"")

ctrl+shift+enter

确认公式