3个Excel公式都看不懂!”

最近收到某位学员的问题咨询 , 问题是如何根据单据编号和物料长代码返回对应的含税数额 。如下表:

3个Excel公式都看不懂!”

文章插图
其实这位学员的问题就是如何实现多条件查询 。
下面通过一个实例跟大家分享一下常用的几种多条件查询方法 。下表是某电商公司的客户投诉表 , 现在需要通过A表中的客户姓名与地区两个条件来查询B表中的产品型号 , 返回到A表的E列中 。
3个Excel公式都看不懂!”

文章插图
1、LOOKUP函数
函数公式:=LOOKUP(1,0/(A3=$I$3:$I$19)*(B3=$J$3:$J$19),$K$3:$K$19)
3个Excel公式都看不懂!”

文章插图
公式解析:首先通过A3单元格与B表I列数据做对比 , 同时用B3单元格与B表J列信息做对比 。在excel中如果两个单元格对比 , 相等则返回TRUE , 在四则运算中用1表示 。如果不相等则返回FALSE , 使用0表示 。那么(A3=$I$3:$I$19)*(B3=$J$3:$J$19)这部分运算的结果就只有0或者1两种情况 , 因为只有0*1、1*1、1*0这三种情况 。用0来除以0和1 , 由于分母不能为0 , 所以0/0返回的是错误 , 0/1返回的结果为0 。Lookup函数在查找的时候是忽略错误的 , 所以只有数据运算结果为1的公式满足条件 。
那么我们就很好理解0/(A3=$I$3:$I$19)*(B3=$J$3:$J$19)的目的就是将正确结果用0表示 , 其他的变成错误值 , 利用函数查找忽略错误这个特点完成查找 。总结:本函数由于使用了二分法原理查找 , 所以如果数据量较大时运算会很慢 。
2、VLOOKUP函数
3个Excel公式都看不懂!”

文章插图
使用G2单元格在A列中查找 , 如果查找到对应单元格则返回A列向右第二列的数据 。简而言之:=VLOOKUP(查找什么 , 在哪查找 , 从条件所在列算起找到后返回对应的第几列数据 , 精确或模糊查找) 。那vlookup如何才能完成多条件查询呢?还以客户投诉表为例 , 按照姓名&地区来匹配产品型号返回到E里中 。
3个Excel公式都看不懂!”

文章插图
其实我们是可以将A、B两表中插入辅助列 , 将姓名和地区都合并到一个单元格中然后使用vlookup来完成 。
3个Excel公式都看不懂!”

文章插图
但是插入2个辅助列后整个表列数发生变动 , 在工作中往往单元格中有很多公式 , 如果列数发生变化将直接导致表格中函数公式运算结果错误 。所以添加辅助列的方式虽然简单 , 但不是最好的方式 。那么不用辅助列如何才能完成多条件查询呢?首先我们查找值合并很简单 , 输入函数vlookup时第一个参数可以写成A3&B3 , 即可将A3、B3两个单元格内容合并 , 作为查找值 。现在问题查找区域也需要做合并 。如果把两列内容合并在一起 , 可输入公式=H2:H19&I2:I19 , 按ctrl+shift+回车生成结果 , 然后下拉公式 , 这样两个条件就变成了一个 。
3个Excel公式都看不懂!”

文章插图
接下来通过IF函数提取对应的J列数据 , 可输入公式=IF({0,1},H2:H19&I2:I19,J2:J19) , 按ctrl+shift+回车生成结果 , 然后下拉公式 , {0,1}表示逻辑值{FALSE,TRUE} 。下面我们详细来解析一下:首先在excel中0表示错误 , 1以及其他所有数值表示正确 。如下表示例:

推荐阅读