Google Sheets用IF、SORT函数统计动态类别下得分前3项
Google Sheets 动态匹配类别取最终得分Top3实现方案
实现要求适配
- 支持动态类别取值:直接引用F27单元格的类别值,修改F27内容时公式自动更新匹配规则,无需手动修改公式
- 筛选范围:F列「Categorie(类别)」与指定类别匹配的行
- 排序规则:按L列「Eindscore(最终得分)」降序排列,返回排名前3的条目
方案1:FILTER+SORTN(推荐,写法简洁性能好)
在需要输出结果的空白单元格输入以下公式即可:
=SORTN(FILTER(A:Z,F:F=F27),3,0,12,FALSE)
参数解释
FILTER(A:Z,F:F=F27):负责筛选逻辑,提取F列值等于F27单元格内容的所有行,A:Z可替换为你实际存储数据的列范围SORTN部分参数:- 第一参数传入筛选后的数据集
3:指定返回3条结果0:返回精确数量的结果,不做额外去重处理12:指定按数据集的第12列(即L列「Eindscore(最终得分)」)排序FALSE:指定排序规则为降序,得分越高排名越靠前
方案2:QUERY+SORT组合(兼容函数使用习惯)
如果偏好使用QUERY函数,可使用以下写法:
=QUERY(SORT(A:Z,12,FALSE),"SELECT * WHERE Col6 = '"&F27&"' LIMIT 3",0)
参数解释
- 先通过
SORT(A:Z,12,FALSE)将全量数据按L列(第12列)做降序排序,保证高分数据排在前面 - QUERY语句中
WHERE Col6 = '"&F27&"'负责匹配F列(第6列)和F27值一致的行,LIMIT 3限制只返回排序后的前3条结果 - 末尾参数
0代表数据源不包含表头,如果你的数据第一行是列名,将该参数改为1即可
使用注意
- 如果数据包含表头,建议将数据范围调整为从数据行起始位置(比如第2行)开始,避免表头参与计算,同时对应调整排序、筛选的列序号
- 如果存在多个条目最终得分相同的情况,两个公式都会默认按原表的行顺序返回并列结果,需要次级排序规则时,直接在SORT/SORTN参数中追加排序列和规则即可
内容的提问来源于stack exchange,提问作者Scraper2022
相关产品推荐
相关产品推荐

