ILTER 函数是 Excel 动态数组函数之一,可以根据条件动态筛选数据,无需手动操作筛选器,结果会自动溢出到相邻单元格。这是 Excel 数据处理的一次重大升级!
一、基础语法
=FILTER(array, include, [if_empty])
二、实用案例
📌 案例1:单条件筛选
筛选"销售部"的所有员工数据:
=FILTER(A2:D100, B2:B100="销售部", "无匹配数据")
💡 提示: 条件区域的高度必须与数据区域一致!
📌 案例2:多条件筛选(AND 关系)
筛选"销售部"且"工资大于8000"的员工:
=FILTER(A2:D100, (B2:B100="销售部")*(D2:D100>8000), "无匹配")
使用 * 表示 AND(与)关系,所有条件都需满足。
📌 案例3:多条件筛选(OR 关系)
筛选"销售部"或"市场部"的员工:
=FILTER(A2:D100, (B2:B100="销售部")+(B2:B100="市场部"), "无匹配")
使用 + 表示 OR(或)关系,满足任一条件即可。
📌 案例4:数值范围筛选
筛选工资在 5000-10000 之间的员工:
=FILTER(A2:D100, (D2:D100>=5000)*(D2:D100<=10000), "无匹配")
三、高级技巧
🔹 模糊匹配筛选
包含特定文本 — 筛选姓名中包含"张"的员工:
=FILTER(A2:D100, ISNUMBER(SEARCH("张", A2:A100)), "无匹配")
以特定文本开头 — 筛选姓名以"李"开头的员工:
=FILTER(A2:D100, LEFT(A2:A100,1)="李", "无匹配")
🔹 排除空值
=FILTER(A2:D100, A2:A100<>"", "无数据")
🔹 去重组合
=SORT(UNIQUE(FILTER(B2:B100, C2:C100="在职")), 1, 1)
这个公式的作用:
四、与其他函数组合
🔹 FILTER + SORT 排序筛选结果
=SORT(FILTER(A2:D100, B2:B100="销售部"), 4, -1)
参数说明:第4列降序排列(-1表示降序)
🔹 FILTER + UNIQUE 提取唯一值
=UNIQUE(FILTER(B2:B100, D2:D100>8000))
🔹 FILTER + COUNTA 统计数量
=COUNTA(FILTER(B2:B100, C2:C100="销售部"))
⚠️ 注意: FILTER 返回的是数组,直接使用 COUNT 会报错。需要配合 COUNTA 或 ROWS 使用。
🔹 嵌套 FILTER 实现动态筛选
code复制
=FILTER(A2:D100, (B2:B100=F1)*(D2:D100>G1))
这里 F1 和 G1 是单元格引用,可以动态修改筛选条件。
五、常见问题 FAQ
❓ 为什么公式显示 #SPILL! 错误?
溢出区域有数据阻挡。解决方法:
❓ 如何筛选后只显示特定列?
=FILTER(A2:A100, C2:C100="销售部") ' 只显示A列
将 array 参数设为需要的列区域即可。
❓ 如何实现多列筛选条件?
code复制
=FILTER(A2:E100, (B2:B100="销售")*(D2:D100>5000)*(E2:E100="在职"))
多个条件用 * 连接表示 AND 关系。
❓ FILTER 函数支持哪些 Excel 版本?
Office 365Excel 2021Excel Web
Excel 2019 及更早版本不支持此函数。
总结
FILTER 函数的优势:
💡 掌握 FILTER 函数,让你的 Excel 数据处理效率提升 10 倍!