Google Sheets自动合并重复值并排名的自动化公式需求
Google Sheets 自动求和并排名人员贡献的方案
场景说明
A列存人员姓名(含重复记录),B列存单次贡献值,需自动汇总每个人员的总贡献,按贡献值降序排名,且新增人员数据时无需手动更新公式。
方案1:分步公式(清晰易调试)
自动提取唯一人员名单
在空白列(如D1)输入:=UNIQUE(A:A)自动提取A列所有不重复姓名,新增人员后实时更新。
自动计算总贡献
在相邻列(如E1)输入数组公式:=ARRAYFORMULA(IF(D:D<>"", SUMIF(A:A, D:D, B:B), ""))对应D列的每个姓名,自动求和其在B列的所有贡献值,空行自动留空。
自动生成排名
在F1输入数组公式:=ARRAYFORMULA(IF(E:E<>"", RANK.EQ(E:E, E:E, 0), ""))参数
0表示降序排名(贡献越高排名越靠前),空值自动忽略。
方案2:单公式一键生成(简洁高效)
用QUERY函数一次性完成分组求和、排序并自定义表头,在空白单元格输入:
=QUERY(A:B, "SELECT A, SUM(B) WHERE A IS NOT NULL GROUP BY A ORDER BY SUM(B) DESC LABEL A '人员姓名', SUM(B) '总贡献'", 1)
- 公式解析:
SELECT A, SUM(B):选择姓名列并对贡献列求和WHERE A IS NOT NULL:过滤空行GROUP BY A:按姓名分组ORDER BY SUM(B) DESC:按总贡献降序排列LABEL ...:自定义结果表头- 末尾
1表示原数据A:B包含表头,无表头则改为0
补充:给QUERY结果添加排名
若QUERY结果在C、D列(C为姓名,D为总贡献),在E1输入:
=ARRAYFORMULA(IF(ROW(E:E)=1, "排名", IF(ISBLANK(C:C), "", RANK.EQ(D:D, D:D, 0))))
内容的提问来源于stack exchange,提问作者Rex Nguyen
相关产品推荐
相关产品推荐

