在Excel/Google Sheets中按类别排名的数组公式实现方法
按车型类别批量排名数组公式适配方案
你原本的单单元格公式逻辑可以通过LAMBDA迭代函数改造为自动溢出的数组公式,无需逐行复制。
方案1:通用LAMBDA方案(和原公式逻辑完全一致,支持新版Google Sheets)
直接将以下公式输入到排名列首行(如D2单元格)即可自动计算所有行的排名结果:
=MAP(B2:B,C2:C,LAMBDA(类别,销量,IF(类别="",,RANK(销量,FILTER(C:C,B:B=类别)))))
公式说明:
MAP(B2:B,C2:C,LAMBDA(类别,销量)):逐行遍历所有车型的类别和销量数据,把每行的两个值分别传入LAMBDA作为参数IF(类别="",,):自动跳过空行,不会生成冗余错误值RANK(销量,FILTER(C:C,B:B=类别)):与你原本使用的单格排名逻辑完全相同,计算结果和手动下拉公式的结果一致
方案2:兼容旧版的COUNTIFS方案
如果你的表格版本不支持LAMBDA函数,可以使用以下数组公式,输入后按Ctrl+Shift+Enter(Windows)/Command+Shift+Enter(Mac)触发数组计算:
=ARRAYFORMULA(IF(B2:B="",,COUNTIFS(B:B,B2:B,C:C,">"&C2:C)+1))
公式说明:
通过统计同类别中销量高于当前行的车型数量,加1后得到当前车型的类别内排名,计算结果与RANK公式一致。
调整排名顺序提示
如果需要按销量从低到高排名(升序),方案1的RANK函数添加第三个参数1即可:RANK(销量,FILTER(C:C,B:B=类别),1);方案2把">"改为"<"即可。
内容的提问来源于stack exchange,提问作者cowfifteen
相关产品推荐
相关产品推荐

