如何基于Roll no.和session两个条件使用VLOOKUP匹配多列数据
Excel双条件匹配返回多列解决方案
方案1:Excel 365/2021及以上版本(最简单)
直接使用FILTER函数即可自动溢出多列匹配结果,无需手动数组回车:
假设你的两个查询条件分别为:Roll no.存放在B5、session存放在A5,源数据区域为C1:J3,要返回原公式对应的第5-8列内容,公式如下:
=FILTER(G1:J3,(D1:D3=B5)*(C1:C3=A5),"无匹配结果")
公式说明:第一参数为要返回的多列目标区域,后面两个括号分别对应Roll no.、session的匹配条件,乘积逻辑表示同时满足两个条件
方案2:兼容所有Excel版本(适配你原有VLOOKUP使用习惯)
改造原VLOOKUP数组公式,通过拼接双条件实现匹配,输入完成后需要按Ctrl+Shift+Enter三键触发数组计算(公式外会自动生成大括号):
=VLOOKUP(A5&B5,IF({1,0},C1:C3&D1:D3,G1:J3),{2,3,4,5},FALSE)
公式说明:将两个查询条件拼接为一个查询值,用IF构造虚拟查找区域,第一列为源数据session+Roll no.的拼接值,后面为要返回的4列内容,返回列序数对应调整即可
注意事项
- 条件拼接顺序必须和源数据拼接顺序完全一致,不可颠倒
- 老版本Excel不要直接按回车确认公式,必须按
Ctrl+Shift+Enter三键触发数组运算 - 如需处理匹配不到的异常,可在外层套
IFERROR函数返回自定义提示
参考数据集截图:
内容的提问来源于stack exchange,提问作者Sameer Farooqui
相关产品推荐
相关产品推荐

