欢迎光临散文网 会员登陆 & 注册

比Vlookup好用10倍,它才是Excel查找函数No.1

2023-09-25 19:34 作者:秋叶Excel  | 我要投稿

在 Office365 和 Excel2021 版本中,有一个非常好用的函数——Filter。


它基本上可以代替之前在函数界称霸武林十几年之久的万金油函数组合(Index+small+if+row)


我们在之前的文章中也介绍过该函数的基本用法和它的厉害之处。


但是,今天要介绍的这两个神秘用法,一般人还真不一定知道!


有点好奇?那就赶紧上车,跟我一起来看看吧!


实现二维方向查找

在之前我们介绍该函数的用法中,一般都是在一维方向实现单条件或者多条件查找引用。


如下图,是一张销售明细表,需要查找客户名称为:AA 的商品名称有多少种。


我们可以在【I4】单元格输入如下公式:

  • =FILTER(C3:C9,B3:B9=J2)

公式的意思是:


在 B 列的客户名称中,如果有与客户名称 AA 相同的,就返回显示 C 列中对应的商品名称。


如果需要查看下单日期,那我们就必须把公式的第一参数引用区域更改成 A 列。



公式如下:

  • =FILTER(A3:A9,B3:B9=J2)


那么再想查看规格型号,就要再次更改第一参数的引用区域。

这样操作是不是很麻烦?


那么如何才能在一个二维的区域中,快速查找并显示我们想要的数据,而不需要每次更改公式的引用区域呢?


这时我想起了那样一句经典的话:


没有什么问题是用一个函数解决不了的。


如果有,那就再来一个。


好吧,那我们就再来一个 Fliter 函数吧,


把上面的公式稍微改动下,如下图:



公式如下:

  • =FILTER(FILTER(A3:G9,B3:B9=J2),A2:G2=K2)


公式解析:


❶ 先用第一个 FILTER 函数(FILTER(A3:G9,B3:B9=J2))筛选出【A3:G9】单元格的符合条件的全部数据区域。


如下图:



❷ 然后在这个结果的基础上,再进一步筛选:=FILTER(❶,A2:G2=K2)


第二参数的条件设置为:【A2:G2】单元格的内容如果等于【K2】单元格的内容,就返回结果 TRUE,其他返回 FALSE。


如果结果为 true 的就显示所在的那一列全部内容。


其他返回 FALSE 的,将不显示。


此时【K2】单元格内容是下单日期,所以只显示下单日期:



如果,我们再想查看商品名称,就只需要把【K2】单元格的内容更改成商品名称即可。



想看哪个就显示哪个,再也不用一个一个更改引用区域了。


是不是方便的不要不要的呢!


显示指定列内容


在某些工作场景下,需要根据销售明细表,来制作指定格式的客户对账单。


如下图:需要根据上面的销售明细表中的数据,提取其中的【下单日期】、【商品名称】、【规格型号】、【金额】等这四列,其他列则不需要显示出来。


你可能会像下面这样写出公式。



公式如下:

  • =FILTER(明细!$A$3:$A$9,明细!$B$3:$B$9=B2)


这个就是最基本的用法。



但是每换一列,就需要更改单元格区域。这里有四列,那就需要写四个公式。无法自动化。


如何解决这个问题呢?这里有两种方法。


方法一


还是用和上面类似的方法,使用两个 Filter 函数来实现。



公式如下:

  • =FILTER(FILTER(明细!$A$3:$G$9,明细!$B$3:$B$9=$B$2),明细!$A$2:$G$2=A3)


公式解析:



❶ 第一个 FILTER(明细!$A$3:$G$9,明细!$B$3:$B$9=$B$2);


显示全部符合条件的数据。



❷ 第二个FILTER(❶,明细!$A$2:$G$2=A3);


在第一步的基础上,将明细表中的 A2:G2 单元格中的等于 A3 的内容显示出来。


这里的与上面的原理相同。只是把【A3】变成了可以变动的单元格。然后向右拖动就可以显示相对应的数据了。


一直拖动到【D4】单元格。



这样所有列就全部显示出来了!


方法二


也可以用下面这个公式解决,如下图:



公式如下:


  • =FILTER(FILTER(明细!$A$3:$G$9,明细!$B$3:$B$9=$B$2),{1,0,1,1,0,0,1})



公式解析:


这里是利用 1 和 0 就可以解决多列显示的问题。


因为在 Excel 中,1 代表 True,0 代表 False。


明细表中,【$A$3:$G$9】一共有 7 列,那么第二个 filter 的第二参数,也由 7 个 1 和 0 组成。


如果需要显示的列就写 1,不需要显示的列就写 0。


最后就完美解决上面的问题啦!


PS. 一定要记住的是:第二参数中 1 和 0 之间的分隔符号要用逗号,而不能用分号噢。


如果用分号将返回错误值。


写在最后


今天,我们介绍了 filter 函数的两个神秘用法。


❶ 用两个 filter 函数实现二维方向查找,突破之前仅仅用于一维方向的查找引用


❷ 显示指定列内容。利用数字 1 和 0 组成的常量数组,轻松实现想要显示的列内容。这种方法无论是指定列在数据源中的排列顺序是什么,都可以轻松实现。


好了,今天的分享就到这里,如果喜欢此文,欢迎点赞&转发


如果你想系统性学习 Excel。


正好,我们秋叶家的《秋叶 Excel 3 天集训营》专为职场人准备,全部基于职场真实表格案例设计,还有很多超实用 Excel 技巧教学。 


每天学习大概 30 分钟,从日常的功能出发,全程演示,一课一练,夯实进阶每一步。


秋叶 Excel 3 天集训营

原价 99 元  

现在 只需 1 元

 每天学习 30 分钟

你也有可能成为 Excel 高手!

现在就扫码报名吧!

👇👇👇

报名成功后将自动弹出班主任二维码

切勿提前退出

💬


比Vlookup好用10倍,它才是Excel查找函数No.1的评论 (共 条)

分享到微博请遵守国家法律