You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何优化Google Sheets提取唯一邮箱对应最高得分的公式?

优化Google Sheets提取学生最高分的方案

需求

提取每位学生的唯一记录及对应最高得分,允许学生多次尝试,最终汇总表仅保留每个学生的一条记录。

原始数据

AB
1emailscore
2abc@mail.com1
3abd@mail.com3
4abc@mail.com3
5abc@mail.com4
6abe@mail.com5
7abe@mail.com4
8abe@mail.com7
9jvr@mail.com1
10jvr@mail.com7

期望输出

DE
1emailscore
2abc@mail.com4
3abd@mail.com3
4abe@mail.com7
5jvr@mail.com7

现有方案的不足

当前方案需要手动下拉E列公式,且逻辑冗余:

  • D2公式=UNIQUE(A2:A,FALSE,FALSE)未过滤空值,可能提取无效空行
  • E列公式引用未明确的G列,且ARRAYFORMULA用于单个单元格无意义,无法自动批量处理

优化方案

方案1:QUERY函数一步生成完整结果

在任意空白单元格(比如D2)输入以下公式,直接生成包含表头的完整汇总表,无需拆分操作:

=QUERY(A2:B10, "SELECT A, MAX(B) WHERE A IS NOT NULL GROUP BY A LABEL A 'email', MAX(B) 'score'", 1)
  • 逻辑解析:
    • SELECT A, MAX(B):选取邮箱列及对应最高分
    • GROUP BY A:按邮箱分组聚合
    • LABEL:自定义表头名称
    • 最后一个参数1:指定原始数据包含表头

方案2:UNIQUE+MAXIFS数组公式拆分处理

如果需要分开维护邮箱列和得分列:

  1. D2单元格输入(自动提取非空唯一邮箱):
=UNIQUE(FILTER(A2:A, A2:A<>""))
  1. E2单元格输入(自动匹配所有邮箱的最高分,无需下拉):
=ARRAYFORMULA(IF(D2:D="", "", MAXIFS(B:B, A:A, D2:D)))
  • 逻辑解析:
    • FILTER:过滤A列空值,避免UNIQUE生成无效空行
    • ARRAYFORMULA:让MAXIFS批量处理D列所有邮箱
    • IF:处理D列空行时返回空值,保持表格整洁

内容的提问来源于stack exchange,提问作者jean-charles Ricaud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 23:54:05