Excel基于球队、位置双条件用INDEX(MATCH(LARGE))返回前N名得分手
多条件筛选取对应排名选手的实现方案
方案1:Excel 365/2021及以上版本(支持动态数组函数)
直接在H21单元格输入以下公式即可:=INDEX(SORT(FILTER(B:B,(D:D=J$19)*(C:C=F21),"无符合条件选手"),E:E,-1),G21)
- 先用
FILTER筛选出同时满足「所属球队等于J19存储的球队名」、「场上位置等于F列指定位置」的所有选手 - 再用
SORT按E列FPts得分降序排序 - 最后用
INDEX取出G列指定位次的对应选手姓名
方案2:旧版Excel(无动态数组函数,适配你原有INDEX+MATCH+LARGE逻辑)
输入公式后需要按Ctrl+Shift+Enter组合键确认启用数组运算:=INDEX(B:B,MATCH(LARGE(IF((D:D=J$19)*(C:C=F21),E:E,""),G21),IF((D:D=J$19)*(C:C=F21),E:E,""),0))
- 用
IF嵌套两个相乘的条件,仅保留同时满足球队、位置要求的选手FPts得分,不符合条件的得分置为空值 LARGE仅在符合条件的得分池中计算对应排名的分值- 最后用
MATCH定位该分值对应的行,INDEX取出对应选手姓名
优化建议
- 可在外层嵌套
IFERROR处理无匹配结果的场景:=IFERROR(上述公式,"无匹配选手") - 建议将公式中的整列引用(如
B:B)替换为实际数据范围(如B2:B200),可显著提升公式运算效率
内容的提问来源于stack exchange,提问作者Elijah Bryce
相关产品推荐
相关产品推荐

