FILTER 函数¶
函数概述¶
FILTER 函数用于按条件筛选数据并返回匹配结果,属于动态数组函数。它会把满足条件的行(或列)“溢出”到相邻单元格区域中,适合做数据看板、明细查询、分类清单等场景。
典型用途包括:
- 按部门/地区/状态筛选订单明细
- 按日期范围筛选记录
- 多条件组合筛选(AND/OR)
- 无匹配时返回自定义提示
基础语法¶
参数说明¶
| 参数名 | 是否必填 | 含义 | 常见写法 |
|---|---|---|---|
| array | 必填 | 要返回的数组或区域 | A2:D100 |
| include | 必填 | 筛选条件数组,TRUE 保留,FALSE 排除 | B2:B100="华东" |
| if_empty | 可选 | 无结果时返回的内容 | "无匹配" |
补充说明:
- include 必须与 array 在行数或列数上可对齐:若 array 是 99 行数据,则 include 也应是 99 行的逻辑结果。
- include 可以由多个条件组合得到:用
*表示 AND,用+表示 OR(配合比较表达式)。
基础用法示范¶
下例假设数据区域为 A1:E10,表头在第 1 行,数据从第 2 行开始: A=订单号,B=地区,C=部门,D=金额,E=日期
示例1 单条件筛选¶
按“地区=华东”筛选整行记录:
说明:返回 A2:E10 中所有地区为“华东”的行。
示例2 多条件筛选¶
按“地区=华东”且“部门=销售”筛选:
说明:* 会将两个逻辑数组做“同时满足”的合并(AND)。
示例3 或条件筛选¶
按“地区=华东”或“地区=华南”筛选:
说明:+ 表示 OR;若担心出现大于 1 的值,也可用 >0 规范化:
示例4 数值区间筛选¶
筛选“金额≥1000 且 金额≤5000”:
说明:区间筛选常用两个比较表达式做 AND 组合。
示例5 日期范围筛选¶
筛选“日期在 2026-01-01 到 2026-01-31”:
说明:用 DATE 生成边界日期更稳定,避免文本日期带来的比较偏差。
示例6 只返回指定列¶
只返回“订单号、金额”两列,并筛选“部门=技术”:
说明:先用 CHOOSECOLS 取列,再用 FILTER 按条件筛选结果集。
总结¶
FILTER 函数的核心是:从 array 中按 include 给出的 TRUE/FALSE 结果保留数据,并能在无匹配时用 if_empty 提供友好提示。掌握以下要点就能覆盖多数场景:
=FILTER(array, 条件, "无匹配")是最常用模板- 多条件 AND:
(条件1)*(条件2) - 多条件 OR:
(条件1)+(条件2)或((条件1)+(条件2))>0 - 区间/日期筛选本质也是多个比较条件组合
- 可与 CHOOSECOLS、SORT、UNIQUE 等搭配,构建更强的动态查询表