将 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(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
确认公式
我正在尝试对数组索引匹配函数的结果进行排序,但运气不佳。
我的数据集是:
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(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