Google Sheets:统计唯一姓名并汇总数值,按分值判定Rank的方法
分步操作方案
提取唯一姓名:在Sheet2的A2单元格输入公式:
=UNIQUE(Sheet1!A2:A)
(如果Sheet1的A1是表头“姓名”,用A2:A可避免包含表头,公式会自动生成所有不重复的姓名列表)计算每人总分:在Sheet2的B2单元格输入公式:
=SUMIF(Sheet1!A:A, A2, Sheet1!B:B)
选中B2单元格下拉填充至所有姓名行,即可自动计算每个姓名对应的数值总和判定Rank等级:在Sheet2的C2单元格输入公式:
=IF(B2>=5, "Rank3", IF(B2>=3, "Rank2", "Rank1"))
下拉填充后,会根据总分自动匹配对应的Rank等级
一次性数组公式方案(无需手动下拉)
如果想一步生成完整结果,在Sheet2的A2单元格输入以下公式:=ARRAYFORMULA( IFERROR( LET( data, QUERY(Sheet1!A2:B, "SELECT A, SUM(B) WHERE A IS NOT NULL GROUP BY A"), names, INDEX(data,,1), totals, INDEX(data,,2), ranks, IF(totals>=5, "Rank3", IF(totals>=3, "Rank2", "Rank1")), HSTACK(names, totals, ranks) ) ) )
执行后会直接生成“姓名-总分-Rank”三列的完整数据,无需手动填充。
失败原因排查
你之前组合UNIQUE和SUMIF出错,大概率是这两个问题:
- 引用范围不匹配:比如
UNIQUE用了Sheet1!A:A包含表头,导致SUMIF匹配到表头计算出错,建议用A2:A排除表头 - 未下拉填充:
SUMIF公式需要对应每个唯一姓名,必须下拉到所有姓名行,否则只会计算第一个姓名的总分
内容的提问来源于stack exchange,提问作者Bob Bobson

