夜雨聆风学习资料网

ARTICLE · 1027200

Excel筛选还在用手拖?这个函数3秒搞定

Excel筛选还在用手拖?这个函数3秒搞定

前两天有个做行政的读者私信我,说每个月整理库存表都要花大半天,光是筛选品牌、挑出库存不足的商品,就得反复点鼠标点到手酸。

我问她:你用过FILTER吗?

她回了个问号。

其实像她这样的情况真不少。很多人一提到Excel筛选,第一反应就是"数据"选项卡里的那个漏斗图标,点一下、选一下、再复制粘贴出来。数据少还好,数据一多,光等它响应就够泡杯茶了。

今天要聊的FILTER函数,就是专门来治这种"筛选效率癌"的。它能在Excel 2021和最新版WPS里直接用,写一个公式,结果自动 spill 出来,根本不用拖拽填充。

先把它的基本语法亮出来,混个眼熟:

=FILTER(要返回的内容区域, 筛选条件, [找不到结果时显示啥])

第三个参数可以省略,但建议养成写的习惯,后面会说到为什么。

下面直接上场景,看看它到底能省多少事。

场景一:一个条件,把符合条件的全拎出来

假设你手头有一张商品表,A列是商品名,B列是品牌。现在老板说:把"松下"的所有商品给我列出来。

先把下面这张表复制到Excel的A1单元格开始的位置:

商品名
品牌
液晶电视
松下
蓝牙耳机
索尼
回音壁
松下
数码相机
佳能
空气净化器
松下
录音笔
索尼
洗衣机
松下
打印机
惠普
投影仪
松下
平板电脑
苹果
电饭煲
松下
扫描仪
惠普

数据从A1到B13,一共12行商品。

以前你可能要筛选、复制、粘贴,三步走。现在只要在空白单元格里敲:

=FILTER(A2:A13, B2:B13="松下")

回车。A列里所有松下的商品名,自动往下排开,有几个出几个,不用你管行数。

这里的关键是第二个参数——B2:B13="松下",它会对每个单元格做判断,是松下的返回TRUE,不是的返回FALSE。FILTER拿到这串TRUE/FALSE,就把TRUE对应位置的A列内容统统吐出来。

说白了,FILTER就是拿着条件当筛子,把符合的整行记录给你捞出来

场景二:两个条件同时满足,也不在话下

老板又说了:松下这个品牌里,库存大于20的才要。

还是用上面那张表,但这次要加上库存列。把下面这张表复制到Excel的A1单元格开始的位置:

商品名
品牌
库存
液晶电视
松下
15
蓝牙耳机
索尼
30
回音壁
松下
25
数码相机
佳能
8
空气净化器
松下
40
录音笔
索尼
12
洗衣机
松下
18
打印机
惠普
22
投影仪
松下
35
平板电脑
苹果
6
电饭煲
松下
28
扫描仪
惠普
20

数据从A1到C13。

这时候就要上"与"逻辑了。公式改成:

=FILTER(A2:A13, (B2:B13="松下")*(C2:C13>20))

注意中间那个乘号。两个条件括号括起来,用*连接,表示"并且"。为什么用乘号?因为TRUE乘TRUE等于1,TRUE乘FALSE等于0,Excel里非零即真,乘完之后还是1的地方,就是两个条件都满足的行。

这招在FILTER里特别常用,多条件筛选就用乘号连,记不住的话就想:都要满足,缺一不可,乘起来

场景三:只要包含某个词,就给我揪出来

有时候条件没那么精确。比如商品名里只要带"音响"两个字,不管前面后面是啥,都要。

把下面这张表复制到Excel的A1单元格开始的位置:

商品名
品牌
蓝牙音响
索尼
液晶电视
松下
桌面音响
惠普
数码相机
佳能
便携音响
松下
录音笔
索尼
家庭音响
松下
打印机
惠普
回音壁
松下
平板电脑
苹果
电饭煲
松下
扫描仪
惠普

数据从A1到B13。

这时候等于号就不管用了,得请出FIND和ISNUMBER这对老搭档:

=FILTER(A2:A13, ISNUMBER(FIND("音响", A2:A13)))

FIND负责在每个单元格里找"音响"的位置,找到就返回数字,找不到就报错。ISNUMBER再把数字变成TRUE,错误值变成FALSE。最后FILTER拿着这串TRUE/FALSE去捞人。

这个组合技在关键词模糊匹配里特别好使,比通配符还灵活,因为你可以把"音响"换成单元格引用,做成动态查询

场景四:两张表对着看,谁没卖出去一目了然

这个场景是我个人觉得最实用的。

把下面这两张表复制到Excel,A列是全部商品清单,C列是已经卖出去的商品:

全部商品
已售商品
液晶电视
蓝牙耳机
蓝牙耳机
空气净化器
回音壁
投影仪
数码相机
电饭煲
空气净化器
录音笔
洗衣机
打印机
投影仪
平板电脑
电饭煲
扫描仪

A2:A13是全部商品,C2:C5是已售商品(只有4个卖出去了)。

现在要找出哪些还没卖。

公式长这样:

=FILTER(A2:A13, COUNTIF(C2:C5, A2:A13)=0)

思路很巧妙:用COUNTIF去数A列每个商品在C列里出现过几次。出现过就是1,没出现过就是0。然后判断这个计数等不等于0,等于0的就是没卖出去的,FILTER把它捞出来。

这招的本质是"反向筛选"——不是直接筛A列,而是借COUNTIF当裁判,告诉FILTER哪些该留。学会这个思路,很多"找出没有出现的项"的问题都能套。

最后说两句实在的

FILTER这个函数,刚上手可能觉得参数有点绕,但用顺了真的回不去。它的核心就一句话:你给我条件,我帮你把符合条件的行整行端出来

几个小提醒:

  • 第三个参数建议写上,比如"无记录",免得筛选结果为空时显示一堆错误值,看着糟心。
  • 结果区域要留够空白,不然会报#SPILL!错误,意思是"我想溢出来但被挡住了"。
  • 多条件用*连接表示"且",用+连接表示"或",别搞混。

今天就聊到这。如果你手头正好有需要反复筛选的表格,不妨打开Excel试一下FILTER,回来告诉我省了多少时间。

毕竟,能用一个公式解决的事,真没必要点鼠标点到手抽筋。

相关学习资料

返回首页浏览学习资料