Excel FILTER函数完全指南:9大场景 + 版本说明
Excel FILTER函数完全指南:9大场景 + 版本说明
在日常工作中,数据筛选几乎是每个 Excel 用户每天都要面对的操作。如果你还在用筛选按钮一层层点开,FILTER 函数值得你花 10 分钟了解它。
一、FILTER 是什么?
FILTER 是 Excel 365 和 Excel 2021 引入的动态数组函数,核心能力是根据指定条件,从数据区域中自动提取符合条件的行,结果直接”溢出”显示在单元格里。
与其他筛选方式的区别:
-
筛选按钮:手动操作,结果无法直接参与后续计算 -
FILTER 函数:写入单元格,结果随数据变化自动更新,可直接参与公式联动
基本语法
=FILTER(array,include,[if_empty])
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
二、9 大实战场景
场景一:单条件筛选
需求: 从员工表中筛选出所有「销售部」员工。
公式:
=FILTER(B5:G14,C5:C14="销售部","无匹配结果")
在 H6 单元格输入公式后,结果自动溢出到 H6 以下的区域,无需复制。
场景二:多条件 AND 组合
需求: 筛选月薪超过 12000 且工作城市为北京。
公式:
=FILTER(B5:G14,(F5:F14>12000)*(C5:C14="北京"),"无匹配")
*(乘号)实现 AND 逻辑,两个条件同时为 TRUE 时行才被保留。
场景三:多条件 OR 组合
需求: 筛选城市为北京或上海的员工。
公式:
=FILTER(B5:G14,(C5:C14="北京")+(C5:C14="上海"),"无匹配")
+(加号)实现 OR 逻辑,任意条件为 TRUE 时行即被保留。
场景四:模糊匹配
需求: 筛选部门名称中包含「技术」字样的员工(完整写法不确定,如技术研发部、技术部等均需匹配)。
公式:
=FILTER(B5:G14,ISNUMBER(SEARCH("技术",C5:C14)),"无匹配")
SEARCH 函数查找不到内容时返回错误值,ISNUMBER() 将其转为 FALSE,找到时转为 TRUE,从而实现模糊匹配。SEARCH 不区分大小写。
姓名包含某字:
=FILTER(B5:G14,ISNUMBER(SEARCH("张",B5:B14)),"无匹配")
场景五:排除空值行
需求: 只保留所有字段都完整的记录,排除任何一列存在空值的行。
严格版(所有列非空):
=FILTER(B5:G14, (B5:B14<>"")*(C5:C14<>"")*(D5:D14<>"") *(E5:E14<>"")*(F5:F14<>""), "全部记录完整")
宽松版(只要求姓名、部门、月薪非空):
=FILTER(B5:G14, (B5:B14<>"")*(C5:C14<>"")*(F5:F14<>""), "无匹配")
场景六:FILTER + SORT 组合
需求: 筛选销售部员工,并按月薪从高到低排列。
公式:
=SORT(FILTER(B5:G14,C5:C14="销售部"),6,-1)
SORT 语法:SORT(区域, 排序列号, 排序方向)-1 为降序,1 为升序。
多键排序(先按部门升序,再按月薪降序):
=SORT(FILTER(B5:G14,C5:C14<>"技术部"),{3,6},{1,-1})
场景七:FILTER 与其他动态数组函数嵌套
FILTER 可以与多个动态数组函数自由组合:
UNIQUE 去重:
=UNIQUE(C5:C14)
去重后排序:
=SORT(UNIQUE(C5:C14))
筛选后取月薪最高的前 3 名:
=TAKE(SORT(FILTER(B5:G14,C5:C14<>""),6,-1),3)
直接求某部门月薪合计(免辅助列):
=SUM(FILTER(F5:F14,C5:C14="销售部"))
场景八:按条件查找并返回多列
需求: 已知工号,查找该员工全部信息。
公式:
=FILTER(B5:G14,B5:B14="E003","工号不存在")
一个公式返回该员工的所有列,无需分别写多个查找公式。
模糊查找姓名包含某字的员工:
=FILTER(B5:G14,ISNUMBER(SEARCH("王",B5:B14)),"查无此人")
场景九:各部门独立看板
需求: 一张总表,各部门自动生成独立数据区域,总表更新后所有看板自动刷新。
销售部看板:
=FILTER(B5:G14,C5:C14="销售部")
技术部看板:
=FILTER(B5:G14,C5:C14="技术部")
各部门月薪合计:
=SUM(FILTER(F5:F14,C5:C14="销售部"))
三、版本兼容说明
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
快速检测方法: 在单元格输入 =ISREF(FILTER),返回 TRUE 表示可用。
四、总结
FILTER 函数的三大核心价值:
-
多条件组合:用 *和+自由连接多个条件,一行公式替代过去多步操作 -
多列返回:一个公式返回全部列,无需针对每一列单独写公式 -
动态联动:原数据更新时,筛选结果自动刷新,结果可参与后续公式联动
唯一需要注意的:Excel 2019 及更早版本不包含此函数,使用前请确认自己和协作者的版本。
夜雨聆风