EP09. “FILTER Function FILTER 函数”
🔒 登录后可标记已读- FILTER 是 Excel 365/2021 的动态数组函数,可以直接用一条公式把符合条件的记录抓出来
- 结果自动溢出(spilling),不用打开筛选箭头,也不会改动或隐藏原始数据
- 这篇笔记教 FILTER 的基础用法、找不到符合条件记录时的处理、AND/OR 多条件组合,以及搭配 SORT 函数
- 前置知识是数组公式(spilling)的基本概念
- 学完能用公式取代很多传统 AutoFilter 的场景,方便跟其他公式联动
重点内容
适用版本
需要 Excel 365 或 Excel 2021(旧版本没有 FILTER 函数)。
基础用法
示例数据:一份含 Country(国家)等字段的记录表。
- 在 F2 输入
=FILTER(A2:D15,C2:C15="US")- 第一参数是要返回的数据范围
- 第二参数是条件:C 列(国家)等于 "US"
- 结果自动溢出(spilling)到多个单元格,显示所有 Country = US 的记录
[截图:FILTER 公式结果自动溢出,显示所有 Country = US 的记录]
改成 =FILTER(A2:D15,C2:C15="UK") 会动态变成显示所有 UK 的记录——这是「动态」的意思:只要改条件或原始数据变化,结果会自动更新。
处理「找不到符合条件的记录」
- 加第三个参数指定找不到时要显示的信息,避免公式直接报 #CALC! 错误:
=FILTER(A2:D15,C2:C15="FR","No records found")
AND 还是 OR,怎么选
| 逻辑 | 连接符 | 例子 |
|---|---|---|
| AND(同时满足) | 乘号 * | 销售额大于 10000 且国家是 US |
| OR(满足其一) | 加号 + | 姓氏是 Smith 或 Brown |
AND 逻辑(多条件同时满足)
- 用乘号
*连接多个条件,代表「同时满足」:=FILTER(A2:D15,(B2:B15>10000)*(C2:C15="US"))
结果:只显示销售额大于 10000 且 国家是 US 的记录。
OR 逻辑(满足其中一个条件即可)
- 用加号
+连接多个条件,代表「满足其一」:=FILTER(A2:D15,(D2:D15="Smith")+(D2:D15="Brown"))
结果:显示姓氏是 Smith 或 Brown 的记录。
搭配 SORT 函数
- 把 FILTER 的结果再包一层 SORT,筛选完顺便排序:
=SORT(FILTER(A2:D15,C2:C15="US"))
📌 SORT 默认按第一列、升序排列。
函数速查
| 函数 | 语法 | 用途 | 例子 |
|---|---|---|---|
| FILTER | =FILTER(array, include, [if_empty]) | 按条件筛选记录,结果自动溢出 | =FILTER(A2:D15,C2:C15="US") |
| SORT | =SORT(array) | 对筛选结果排序 | =SORT(FILTER(A2:D15,C2:C15="US")) |
学完你会
- ✅ 用 FILTER 函数一条公式动态抓出符合条件的记录
- ✅ 分清 AND 用乘号、OR 用加号,写多条件组合不再搞混
- ✅ 加第三参数处理「找不到记录」的情况,避免 #CALC! 错误影响其他公式
常见错误
- AND 和 OR 逻辑用反:AND 要用乘号
*,OR 要用加号+,写反了结果会完全不对 - 没加第三参数处理「找不到记录」的情况,遇到没有符合条件记录时公式直接报 #CALC! 错误,影响后续引用这个结果的其他公式
- 在 FILTER 公式的溢出范围内插入其他内容,导致 #SPILL! 错误
Sources
Blog / Website: