如何通过多条件匹配查找并返回最后一条符合条件的对应值
多条件返回最后一个匹配项的Excel公式解法
适用Excel 365/2021及以上(支持FILTER函数)
直接复用你现有两个公式的逻辑,把多条件判断规则写入FILTER的筛选条件即可,参考公式如下(以返回'Rank History'!D:D列数值为例,可按需调整目标列):=INDEX('Rank History'!D:D, MAX(FILTER(ROW('Rank History'!E:E), ('Rank History'!B:B=B3)*('Rank History'!E:E=C3))))
逻辑说明:
- 沿用你之前MATCH函数里的多条件判断逻辑,用两个条件的乘积表示同时满足两个匹配要求
- FILTER函数筛选出所有符合条件的行号,MAX取最大行号即对应最后一个匹配项的位置
- 最后用INDEX提取目标列对应行的数值
适用旧版本Excel(不支持FILTER函数)
可以用LOOKUP函数实现相同效果,无需数组回车即可运行:=LOOKUP(2,1/(('Rank History'!B:B=B3)*('Rank History'!E:E=C3)),'Rank History'!D:D)
逻辑说明:
- 分母为两个条件的乘积,满足条件时分母为1,计算结果为1;不满足条件时分母为0,计算结果为错误值
- LOOKUP会自动忽略错误值,查找小于等于2的最后一个有效数值,对应返回第三参数中同位置的数值,刚好为最后一个匹配项
优化建议
- 尽量避免整列引用(比如
B:B),替换为你的实际数据范围(比如B2:B2000),可以大幅提升公式计算效率
内容的提问来源于stack exchange,提问作者Kyle H
相关产品推荐
相关产品推荐

