MICROSOFT

EP09. “FILTER Function FILTER 函数”

首页 Microsoft 工具 Excel · Data Analysis · Filter · EP09
约 5 分钟· #EP09#Excel#Filter
🔒 登录后可标记已读
  • FILTER 是 Excel 365/2021 的动态数组函数,可以直接用一条公式把符合条件的记录抓出来
  • 结果自动溢出(spilling),不用打开筛选箭头,也不会改动或隐藏原始数据
  • 这篇笔记教 FILTER 的基础用法、找不到符合条件记录时的处理、AND/OR 多条件组合,以及搭配 SORT 函数
  • 前置知识是数组公式(spilling)的基本概念
  • 学完能用公式取代很多传统 AutoFilter 的场景,方便跟其他公式联动

重点内容


适用版本

需要 Excel 365 或 Excel 2021(旧版本没有 FILTER 函数)。


基础用法

示例数据:一份含 Country(国家)等字段的记录表。

  1. 在 F2 输入 =FILTER(A2:D15,C2:C15="US")
    • 第一参数是要返回的数据范围
    • 第二参数是条件:C 列(国家)等于 "US"
  2. 结果自动溢出(spilling)到多个单元格,显示所有 Country = US 的记录

[截图:FILTER 公式结果自动溢出,显示所有 Country = US 的记录]

改成 =FILTER(A2:D15,C2:C15="UK") 会动态变成显示所有 UK 的记录——这是「动态」的意思:只要改条件或原始数据变化,结果会自动更新。


处理「找不到符合条件的记录」

  1. 加第三个参数指定找不到时要显示的信息,避免公式直接报 #CALC! 错误:
    =FILTER(A2:D15,C2:C15="FR","No records found")

AND 还是 OR,怎么选

逻辑连接符例子
AND(同时满足)乘号 *销售额大于 10000 且国家是 US
OR(满足其一)加号 +姓氏是 Smith 或 Brown

AND 逻辑(多条件同时满足)

  1. 用乘号 * 连接多个条件,代表「同时满足」:
    =FILTER(A2:D15,(B2:B15>10000)*(C2:C15="US"))

结果:只显示销售额大于 10000 国家是 US 的记录。


OR 逻辑(满足其中一个条件即可)

  1. 用加号 + 连接多个条件,代表「满足其一」:
    =FILTER(A2:D15,(D2:D15="Smith")+(D2:D15="Brown"))

结果:显示姓氏是 Smith Brown 的记录。


搭配 SORT 函数

  1. 把 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:

  1. FILTER function