如何在Google Sheets多工作表提取各团队前5大值并排序至指定表
Google Sheets 提取各团队前5最大值并排序解决方案
需求回顾
从「Lap1」和「Lap2」工作表中,提取每个团队的5个最大值,汇总到「Biggest」工作表,且每个团队的数值按从大到小排序。预期结果:
- Team 1:12 4 3 2 2
- Team 2:12 8 7 5 4
解决方案(数组公式一键实现)
在「Biggest」工作表的A1单元格输入以下数组公式,回车后自动生成结果:
=LET( teams, UNIQUE(FILTER({Lap1!A:A; Lap2!A:A}, {Lap1!A:A; Lap2!A:A}<>"")), top_values, BYROW(teams, LAMBDA(t, TEXTJOIN(" ", TRUE, SORT(LARGE(FILTER({Lap1!B:B; Lap2!B:B}, {Lap1!A:A; Lap2!A:A}=t), SEQUENCE(5)), FALSE)))), HSTACK(teams, top_values) )
公式拆解
{Lap1!A:A; Lap2!A:A}:合并两个工作表的团队列数据UNIQUE(FILTER(...)):提取所有非空的唯一团队名称BYROW(teams, LAMBDA(t, ...)):对每个团队单独处理:FILTER({Lap1!B:B; Lap2!B:B}, ...=t):筛选当前团队的所有数值LARGE(..., SEQUENCE(5)):提取该团队的前5个最大值SORT(..., FALSE):将这5个值按降序排列TEXTJOIN(" ", TRUE, ...):用空格拼接成字符串
HSTACK(teams, top_values):将团队列和对应数值列横向合并,生成最终结果
备选方案(分列展示数值)
如果需要将每个最大值单独放在一列(B-F列):
- 在「Biggest」工作表A2单元格输入团队列表:
=FILTER(UNIQUE({Lap1!A:A; Lap2!A:A}), UNIQUE({Lap1!A:A; Lap2!A:A}<>"")
- 在B2单元格输入公式,向右拉到F2后下拉至对应行:
=LARGE(FILTER({Lap1!B:B; Lap2!B:B}, {Lap1!A:A; Lap2!A:A}=$A2), COLUMN()-1)
内容的提问来源于stack exchange,提问作者ichark
相关产品推荐
相关产品推荐

