夜雨聆风学习资料网

ARTICLE · 994362

Excel的FILTER函数:7个最常用示例

Excel的FILTER函数:7个最常用示例

FILTER就是 “按条件筛选” ,把符合条件的所有行一起拎出来。跟VLOOKUP或XLOOKUP不一样的是,那俩只找一个,FILTER一口气把符合条件的全列出来。

公式只有3个参数:

=FILTER(要返回哪一列或哪几列, 筛选条件, [如果查不到就显示这个])

前两个必须填,第三个可写可不写。

示例1:最基础的筛选(找出所有女员工)

场景:人事表里,要把所有性别为“女”的员工全部列出来。

数据表(A1:D6) :

工号姓名性别部门
A001陈晓峰销售部
A002林雨桐财务部
A003王浩市场部
A004周敏人事部
A005郑欣销售部

筛选结果(F1:I3) :

工号姓名性别部门
A002林雨桐财务部
A004周敏人事部
A005郑欣销售部

公式(F1单元格,自动溢出) :

=FILTER(A2:D6,C2:C6="女")

参数解释

  • 第一参数 A2:D6 → 把整张表都返回

  • 第二参数 C2:C6="女" → 筛选条件是性别这一列等于“女”

用在哪:从花名册里筛出所有女生、所有销售部员工、所有90后等等。

示例2:只返回某几列(不返回整行)

场景:还是筛女员工,但只显示“姓名”和“部门”,工号不看了。

数据表(A1:D6) :

工号姓名性别部门
A001陈晓峰销售部
A002林雨桐财务部
A003王浩市场部
A004周敏人事部
A005郑欣销售部

筛选结果(F1:G3) :

姓名部门
林雨桐财务部
周敏人事部
郑欣销售部

公式(F1单元格,自动溢出) :

=FILTER(B2:D6,C2:C6="女")

参数解释

  • 第一参数换成 B2:D6 → 只返回姓名、性别、部门三列(你想再少就只选B列和D列,中间隔开也是可以的,比如选B2:B6和D2:D6要用数组写法,但初学者直接选连续区域最省事)

用在哪:只要部分字段的报表,比如只看姓名和联系方式,不看身份证号。

示例3:查不到时显示提示(不报错)

场景:筛选条件一个都没命中,别显示#CALC!,显示“没有找到符合条件的记录”。

数据表(A1:D6) :

工号姓名性别部门
A001陈晓峰销售部
A002林雨桐财务部
A003王浩市场部
A004周敏人事部
A005郑欣销售部

筛选结果(F1单元格) :

结果
没有找到符合条件的记录

公式(F1单元格) :

=FILTER(A2:D6,C2:C6="实习生","没有找到符合条件的记录")

参数解释

  • 第三参数就是“查不到时显示的内容”

用在哪:做数据看板时,用户筛了个空条件,得给个友好提示,不能直接甩一个错误值。

示例4:两个条件同时满足(AND)

场景:找出所有“女”员工且部门是“销售部”的。

数据表(A1:D6) :

工号姓名性别部门
A001陈晓峰销售部
A002林雨桐财务部
A003王浩市场部
A004周敏人事部
A005郑欣销售部

筛选结果(F1:I2) :

工号姓名性别部门
A005郑欣销售部

公式(F1单元格,自动溢出) :

=FILTER(A2:D6,(C2:C6="女")*(D2:D6="销售部"))

参数解释

  • *号表示“且”的关系。两个条件都成立,才筛出来

  • 注意每个条件都加了括号,这是好习惯,不容易错

用在哪:找“销售部+女”员工、找“北京+已发货”的订单、找“2025年以后+金额大于10万”的合同。记住一个口诀:AND用乘号(*)

示例5:两个条件满足其中一个就行(OR)

场景:找出所有“女”员工 或者 部门是“销售部”的人(满足任一条就列出来)。

数据表(A1:D6) :

工号姓名性别部门
A001陈晓峰销售部
A002林雨桐财务部
A003王浩市场部
A004周敏人事部
A005郑欣销售部

筛选结果(F1:I4) :

工号姓名性别部门
A001陈晓峰销售部
A002林雨桐财务部
A004周敏人事部
A005郑欣销售部

公式(F1单元格,自动溢出) :

=FILTER(A2:D6,(C2:C6="女")+(D2:D6="销售部"))

参数解释

  • +号表示“或”的关系。两个条件只要有一个满足就筛出来

  • 陈晓峰虽然是男,但部门是销售部,所以也被筛出来了

用在哪:找出“已超期”或“金额大于10万”的订单、找出“请假”或“出差”的员工。OR用加号(+)

示例6:筛选大于某个数值(比大小)

场景:销售表中,找出业绩超过10万的所有人。

数据表(A1:C6) :

销售员月份业绩
陈晓峰7月85000
林雨桐7月120000
王浩7月68000
周敏7月150000
郑欣7月95000

筛选结果(E1:G3) :

销售员月份业绩
林雨桐7月120000
周敏7月150000

公式(E1单元格,自动溢出) :

=FILTER(A2:C6,C2:C6>100000)

参数解释

  • 第二参数直接写 C2:C6>100000,跟IF的比大小写法一样

用在哪:找出业绩达标的人、找出低于安全库存的物料、找出超预算的费用。

示例7:包含某个关键词的筛选(通配符效果)

场景:筛选出姓名里包含“敏”字的所有员工。

数据表(A1:D6) :

工号姓名性别部门
A001陈晓峰销售部
A002林雨桐财务部
A003王浩市场部
A004周敏人事部
A005郑欣销售部

筛选结果(F1:I2) :

工号姓名性别部门
A004周敏人事部

公式(F1单元格,自动溢出) :

=FILTER(A2:D6,ISNUMBER(FIND("敏",B2:B6)))

参数解释

  • FIND("敏",B2:B6) → 在姓名列里找“敏”字,找到就返回一个数字,找不到就返回错误

  • ISNUMBER(...) → 判断上面返回的是不是数字,是数字就说明找到了,筛选条件成立

  • 这一串组合起来就是“只要姓名里包含‘敏’字,就筛出来”

总结

FILTER就三个参数:返回什么、条件是什么、查不到怎么办。条件这块,等于直接写,两个都成立用乘号任选一个用加号包含关键词套ISNUMBER+FIND

相关学习资料

返回首页浏览学习资料