重点内容
适用版本
需要 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")) |
学完你会
常见错误
- AND 和 OR 逻辑用反:AND 要用乘号
*,OR 要用加号+,写反了结果会完全不对 - 没加第三参数处理「找不到记录」的情况,遇到没有符合条件记录时公式直接报 #CALC! 错误,影响后续引用这个结果的其他公式
- 在 FILTER 公式的溢出范围内插入其他内容,导致 #SPILL! 错误
Sources
Blog / Website: