Google Sheets中结合SUM的RANK IF公式:按国家汇总企业得分排名
在Google Sheets中按国家统计企业总分并排名
我经常帮人处理这类多维度的统计需求,下面给你两种实用的方案,你可以根据自己的使用习惯选:
方案一:用QUERY函数一步生成分组+总分(简洁高效)
假设你的原始数据在A1:D列(A=国家,B=企业,C=分支机构,D=得分),表头在第1行。
在新区域(比如F1:I1)手动输入表头:
国家、企业、总分、国内排名在F2单元格输入以下公式,它会自动分组计算每个国家下各企业的总分,并按国家+总分降序排列:
=QUERY(A:D, "SELECT A, B, SUM(D) WHERE A IS NOT NULL GROUP BY A, B ORDER BY A, SUM(D) DESC", 1)解释一下参数:
SELECT A, B, SUM(D):提取国家、企业,计算对应得分总和WHERE A IS NOT NULL:自动忽略空行GROUP BY A, B:按国家+企业维度分组ORDER BY A, SUM(D) DESC:先按国家排序,再按总分降序排列- 最后的
1表示原始数据有1行表头
计算国内排名:在I2单元格输入公式,下拉填充即可(如果是动态数组版本的Sheets,输入后会自动溢出):
=RANK.EQ(H2, FILTER(H:H, F:F=F2), 0)这个公式的逻辑是:用
FILTER(H:H, F:F=F2)筛选出当前国家的所有总分,再用RANK.EQ给当前企业的总分在这个范围内降序排名(0代表降序)。
方案二:用UNIQUE+SUMIFS手动构建(灵活可控)
如果你需要更灵活地调整分组逻辑,或者不习惯用QUERY,可以试试这个分步方案:
- 提取唯一的国家-企业组合:在F2单元格输入,自动生成所有不重复的国家+企业配对:
=UNIQUE(A2:B) - 计算对应总分:在H2单元格输入,下拉填充(或自动溢出):
这个公式会匹配A列等于当前国家(F2)且B列等于当前企业(G2)的所有行,求和D列的得分。=SUMIFS(D:D, A:A, F2, B:B, G2) - 计算国内排名:和方案一的排名公式一样,在I2输入:
=RANK.EQ(H2, FILTER(H:H, F:F=F2), 0)
补充说明
- 如果有多个企业总分相同,
RANK.EQ会给它们相同的排名,下一个排名会跳过(比如两个第2名,下一个就是第4名)。如果需要连续排名(比如两个第2名,下一个是第3名),可以把公式换成=COUNTIF(FILTER(H:H, F:F=F2), ">"&H2)+1 - 所有公式都支持动态更新,只要原始数据新增或修改,统计结果会自动刷新
内容的提问来源于stack exchange,提问作者franciscofcosta




