Vlookup、Lookup、Xlookup是Excel查找函数中的三剑客 , 好象没有它们搞不定的查找难题 。但 , 昨天小编翻到的的一用户提问 , 让这三个函数都傻眼了 。
下图户籍表中 , C列为户编号 。每户有N个成员 , 户编号每户唯一 。(如户编号275的家庭有两个成员 , 户主和儿子)
【Vlookup、Lookup、Xlookup全走开,Excel最牛查找公式来了!】
文章插图
问题来了:根据i列户编号 , 从左表中查找出该编号的所有家庭成员 , 而且是同时查找多个户编号 。
文章插图
别说多个编号同时查找 , 就是只查找一个户编号 , Vlookup、lookup、和xlookup都很实现 。那么上图演示中到底用了什么公式 , 这么牛X?
别急 , 小编要一点点揭开这个最牛查找公式的谜底 。
在office365中新增了 Filter函数 , 它可以很简单的实现一对多查找:
=FILTER(B2:G39,C2:C39=I2)
文章插图
FILTER函数的工作原理是:
第1个参数给定一个数据表 , 根据第2个参数返回的true(条件成立)或Flase(条件不成立)来确定结果为True的行 。
我们把=FILTER(B2:G39,C2:C39=I2)中的C2:C39=I2拆出来放在H列 , 来看一下筛选的过程:
所以 , 学会用filter函数的关键 , 就是构建第二个参数的条件 。
本例中需要同时查找多个户编号 , 条件该怎么设置呢?
这样?把一个单元格换成区域 。哦 , 出错了!
=FILTER(B2:G39,C2:C39=I2:I3)
文章插图
其实 , 多对多的对比可以转换为多对一 。我们可以用textjoin函数(office365新增)把i列的户编号连接起来 。
=TEXTJOIN(“,”,,I2:I3)
文章插图
然后再进行用isnumber+find函数组合逐一对比是C列的编号是否包含在合并的户编号中 。
=ISNUMBER(FIND(C2,$K$2))
文章插图
当然 , 上图中只是为了演示计算过程 , 在实际设置公式时是不需要辅助列的 , 直接用整个C列区域对比:
=FILTER(B2:G39,ISNUMBER(FIND(C2:C39,TEXTJOIN(“,”,,I2:I5))))
文章插图
文章插图
小编说:今天用了两个office365新增函数解决多对多查找的难题 。可能有人问不用新函数可以解决吗?可以 , 但公式无比复杂 , 不是一般用户能掌握的 。但大家可以试试多用辅助列 , 也许可以解决这个问题 。
推荐阅读
- VBA教程:数组、集合和字典
- 倡导“茶为国饮” 打造“杭为茶都”——要正确定位、把准方向、谋划布局、做细做强
- 孥孥是什么意思?
- 人类的天敌是谁呀?
- 威斯康星州、新泽西州、伊利诺伊州和罗德岛州州花:木紫罗兰
- 对不起、真诚道歉、个性化的道歉语分享
- 太原美食
- 泰安美食
- 泰州美食
- 精选26句 关于有几个知心朋友真好的说说