关于按多个条件组合查找,以前我曾写过不少教程,时隔已久,最近又有宝子提出这类需求。那么今天就一文教大家两种方式,顺便帮助大家理解一下数组。
案例:从下图 1 的数据表中按多个条件查找出符合条件的所有结果,效果如下图 2、3 所示。
解决方案 1:1. 在右侧设置查询条件和需要查找的结果。
2. 在 J2 单元格中输入以下公式 --> 按 Ctrl+Shift+Enter:
=VLOOKUP(H2&I2,IF({1,0},B:B&C:C,F:F),2,0)
公式释义:
vlookup 函数很常用,其中 4 段参数表示 (要查找的值,查阅值所在的区域,含返回值在区域中的列号,0 表示精确匹配);
H2&I2:将两个单元格连接起来,拼接成一个不重复的查找值,结果为“1诸葛钢铁”;
IF({1,0},B:B&C:C,F:F):
IF 函数的参数为 (条件,值1,值2),即如果条件为真,返回“值1”,为假则返回“值2”;
第一个条件参数 {1,0} 是一个一行两列的数组常量,分别有两个元素 1 和 0;
第二个参数则是 B、C 列连接后的垂直数组;
因为数组行列不一致,会进行扩展,扩展后 if 函数的结果为 {"月份姓名","奖金";"1郑喜定",7153;"1宋大莲",2895;"1王富贵",1600;...};
如此这般,相当于把查询区域的 B 和 C 列连接成了唯一值,与 vlookup 的第一个参数正好匹配;
最后三键结束,生成数组公式
解决方案 2:如果上面的数组实在很难理解,不如用这个方式,不仅能多条件查找,还能在重复时查找出所有结果。
1. 重新设置如下查找条件和区域。
* 请注意:结果区域的表头字段必须与查询区域的表头字段完全一致。
2. 选择菜单栏的“数据”-->“高级”
3. 在弹出的对话框中选择“将筛选结果复制到其他位置”--> 按以下方式设置 --> 点击“确定”:
列表区域:选择 A 至 F 列的数据表
条件区域: 选择 H1:I2
复制到:选择 J1 单元格
所有符合条件的结果都查找出来了。
4. 调整好结果区域的格式。