Excel带条件创建排名:忽略指定行的实现方案咨询
Excel 按指定条件过滤行排名解决方案
需求说明
仅当A列值为1时,对B列对应值进行排名,排名仅统计所有A列=1的B列数据;A列值为0时,对应单元格留空。
解决方案
根据你的Excel版本,选择以下公式:
兼容旧版Excel(2019及更早)
在C2单元格输入以下公式,然后下拉填充至所有数据行:
=IF(A2=1,SUMPRODUCT(($A$2:$A$300=1)*(B2<$B$2:$B$300))+1,"")
公式说明:
IF(A2=1,...,""):判断当前行是否符合排名条件,不符合则留空SUMPRODUCT(($A$2:$A$300=1)*(B2<$B$2:$B$300)):统计所有A列=1且B列值大于当前行B值的单元格数量+1:将统计结果转为从1开始的升序排名(数值越小排名越靠前)
Excel 365/2021(动态数组版本)
在C2单元格输入以下公式,公式会自动溢出填充至整列:
=IF(A2:A300=1,RANK.EQ(B2:B300,FILTER(B2:B300,A2:A300=1),1),"")
公式说明:
FILTER(B2:B300,A2:A300=1):筛选出所有A列=1的B列数据,作为排名的数据源RANK.EQ(...,筛选后的数据源,1):对每个符合条件的B值,在筛选后的数据源中进行升序排名IF(...):控制不符合条件的单元格留空
效果验证
针对你的示例数据,使用公式后会得到目标表格的结果:
- A列=1的B值为1、7、3、4,升序排名后依次为1、4、2、3,与预期完全匹配
内容的提问来源于stack exchange,提问作者Coding_Nubie
相关产品推荐
相关产品推荐

