|
单条件查找上篇我们说了(VLOOKUP函数也可以用于多条件查找,构建一个辅助列或者条件合并就行)但是这里我们拿出新的查找套路,应用范围更广的lookup函数。
直接上案例:

这里有两个查询条件,班级&姓名
一、lookup函数完成多条件查询
lookup函数太强大,我们这里用一个默认的使用方法 lookup(1,0/(参数2),参数3)
这里什么意思呢?网上资料是很少的,这里做个备注:
参数1:1
参数2:0/() 括号内为查找条件
参数3:查询返回的区域
上例可以写成:
=LOOKUP(1,0/((A:A=H2)*(B:B=I2)),C:C)

相信大家有很多疑问?参数1为什么是1,参数2为什么要0除以条件,中间的乘号是什么意思?
参数1:参数1不一定要是1,这里要结合参数2来看,这里的参数1是要大于参数2的0/(),当然0出除以任何数都为0(0本身不能作为除数)。所以参数1可以写为99,101,33,等等,只要比参数2的运算结果大就行。

参数2:0/()
同上,参数2不必要为0/(),只要运算结果小于参数1就行
其中,这里的重点是0/() 这里的括号里面是查询条件。如本例,要在A列找1班,同时B列中找张三,两个条件同时符合,因为涉及到单元格匹配数组运算,这里要用乘号表示因为A:A列中等于1班结果为1,乘 B列中名字为张三的结果才为1(TRUE)。
即((A:A=H2)*(B:B=I2))。特别注意,单个条件要用括号,同时最外面还有一对括号。
那如果有更多条件呢?
0/((条件1)*(条件2)*(条件3)…………)
参数3:务必和查询条件的区域引用相对一致
查询条件(A:A=H2),引用了A:A整列,则参数3必须引用整列,这里是C:C
如果是A1:A12,那参数3必须是C1:C12
二、index 和match 完成多条件匹配
这是一个数组公式,执行的时候不能直接回车,需要按住CTRL+SHIFT+ENTER 才能执行
index 和match我们在上一篇已经讲了
这里讲一个多条件需要用到&符号拼接查询(match 中匹配多个条件所在的那行)
=INDEX(A:C,MATCH(H2&I2,A:A&B:B,0),3)
注意到:match函数中,第一参数为H2&I2,即一班&张三 在A:A&B:B中所处的位置(行数)
其他理解按上一篇文章理解即可

三、那有一个问题,如果我用VLOOKUP找怎么多条件查找呢?
可以,问题不大
首先、我们构建一个辅助列:将班级和姓名拼接,形成一个新的列
再次,使用VLOOKUP函数查找
公式可以写成
=VLOOKUP(H2&I2,A:D,4,FALSE)
注意这里参数1变成了 H2&I2

tips:
这里介绍3种多条件查询的方法,构建辅助列的方法最好理解,但是往往我们不能破坏原数据,当可以增加辅助列时,VLOOKUP依然可以实现多条件查找。
再这里我们看到的是excel更加灵活的应用(这里我们依然没有介绍相对引用和绝对引用,因为下拉公式的时候,特别是查找函数特别注意,这个我们后面再讲)。
最近再网上看到,为什么有的人excel很6不去学python?
作为一个python也会那么一些的人来看
1、python需要搭载环境,excel不要,即使VBA也能在有office下就可以完成(基本每台电脑都有office),而python则不然
2、并不是每个人都需要处理几十万或更多数据,excel足够了。而且更多的是excel是办公软件(也就是绝大多数人都会用到表格,但不一定是数据,可能是格式,文本,打印,等等),python在办公这块无法完好的支撑
3、excel更多的对单元格操作,而python在对单元格操作上灵活度不够,excel毕竟操作可以所见所得
4、excel 数据到可视化一体成型,兼容平移到其他word,ppt,access等。同时也有了POWER QUERY,同时也可以外接数据库等等。
当我们有更多数据处理的需求时,excel无法满足的时候,我们可以学习掌握python,SQL等等。但对于excel就足够的同学来说,把excel熟练才是第一要素。 |
|