欢迎大家来到IT世界,在知识的湖畔探索吧!
如下图所示,需要在右表中根据姓名从左表中查找对应的信息。
欢迎大家来到IT世界,在知识的湖畔探索吧!
看到这种问题,大家一般第一时间会想到用Vlookup+Match的组合,Match查找列数作为Vlookup的第3个参数,可有两个问题很难搞定:
- 根据多列查找(如本例中如果部门中有重名的)
- 反向查找(如本例根据姓名查找)
为了解决这个问题,今天给大家分享另外一个公式组合:
=FILTER(CHOOSECOLS(A2:E8,MATCH(TOCOL(H1:P1,1),1:1,0)),COUNTIF(G2:G11,C2:C8)>0)
1、它只需要一个公式就可以查询全部。
2、列的顺序随意,当然反向查找更不是问题。
最厉害的来了!
3、你可以随意增减查找的列数和行数,公式可以自动扩充。(如果你想做一个动态查询表格,这个自动扩充的公式肯定会用上的)
下面给大家解析下这个公式的原理和运算。
要实现一个公式返回所有行列结查询结果,filter函数是必选。而解决列的顺序则由CHooseCols函数(wps和office365新增函数,返回一个表格的指定列)完成。
=CHOOSECOLS(A2:E8,MATCH(TOCOL(H1:P1,1),1:1,0))
公式说明:
- TOCOL(H1:P1,1): H1:P1可以改为更多列区域,为了除去空白,需要用tocol函数,参数1时可以忽略空白。如果你的版本不支持tocol,可以安装一个免费版的WPS
- MATCH(TOCOL(H1:P1,1),1:1,0):从左表中查找列数,作为ChooseCols的第二个参数,从而筛选出结果列。
最难的区域搞定了!再结Filter加一个条件就OK了
=FILTER(CHOOSECOLS(A2:E8,MATCH(TOCOL(H1:P1,1),1:1,0)),COUNTIF(G2:G11,C2:C8)>0)
公式说明:
这里用Countifs统计G列的姓名在C列是否存在,为了让行数自适应,G2:G11也可以设置更多行
关于这个技巧,你学会了么?动手试试吧!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/134703.html