WPS表格中FILTER函数,让数据筛选变得如此简单
|
有网友咨询了这样一个问题:“我的表格里有上千行数据,想根据某个条件把符合要求的数据自动提取出来,每次手动筛选再复制太麻烦了,有没有一个函数能搞定?” |
这个问题问得好!
以前遇到这种需求,我们可能会用 VLOOKUP、INDEX+MATCH 组合,或者干脆手动筛选了再复制粘贴。
但今天我要分享的FILTER 函数,可以说是 WPS 表格中”动态筛选”的神器——一个公式,全部搞定。
FILTER 函数是什么?
先简单认识一下这个函数。
FILTER,英文就是”筛选”的意思。它的语法只有三个参数,非常好记:
=FILTER(要筛选的区域, 筛选条件, [没有结果时返回的值])
•第一参数:你想从哪个区域提取数据
•第二参数:筛选的条件(一个判断表达式)
•第三参数(可选):如果没找到符合条件的数据,返回什么内容
最关键的一点——FILTER 函数是 动态数组函数,结果会自动扩展填充到相邻单元格,不需要拖拽公式!
什么意思呢?就是你写好公式按回车,符合条件的记录会自动“铺”出来,有多少条就显示多少行,一条不多一条不少。
方法一:单条件筛选,最基础的用法
先来看一个最常见的场景。
假设我有一张销售数据表:

现在我想把“销售一部”的所有记录提取出来。
在 F2 单元格输入公式:
=FILTER(A2:C30, B2:B30=”销售一部“, “没有找到“)
回车之后,所有“销售一部”的数据就自动显示出来了。
而且,如果源数据发生变化——比如新增了一条销售一部的记录——筛选结果也会 自动更新,不需要重新操作。

一个公式,替代了手动筛选→ 复制 → 粘贴的繁琐操作,是不是很简单?
方法二:多条件筛选,“且”和”或”都能搞定
实际工作中,筛选条件往往不止一个。
比如:销售一部中销售额大于3000的记录。
这里就要用到多条件筛选了。FILTER 的第二参数支持用 乘号(*)和加号(+)来组合条件,非常巧妙。
条件“且”的关系(同时满足)——用 * 连接:
=FILTER(A2:C30, (B2:B30=”销售一部“)*(C2:C30>3000), “没有找到“)
销售一部或销售额二部的记录。
条件“或”的关系(满足其一即可)——用 + 连接:
=FILTER(A2:C30, (B2:B30=”销售一部“)+(B2:B30=”销售二部“), “没有找到“)
|
小窍门: 乘号(*)→ 并且 加号(+)→ 或者 |
是不是很好记?

方法三:FILTER + SORT,筛选完顺便排个序
筛选出来的数据,往往还需要排序。
这时候我们可以把 FILTER 和 SORT 函数搭配使用,一个公式完成筛选+排序:
=SORT(FILTER(A2:C30, B2:B30=”销售一部“, “”), 3, -1)
这个公式的意思是:
•先筛选出“销售一部”的数据
•然后按第 3 列(销售额)降序排列
•-1 表示降序,1 表示升序
一步到位,不用再点排序按钮了。

方法四:FILTER + UNIQUE,提取不重复的列表
还有一种很实用的组合:筛选出符合条件的数据后,再去掉重复值。
比如,我想知道“销售一部”都有哪些产品被销售过:
=UNIQUE(FILTER(C2:C30, B2:B30=”销售一部“, “”))
这样就能得到一个不重复的产品列表。
这个结果非常适合用来做下拉菜单的数据源或者数据验证,一劳永逸。

几个需要注意的小细节
① WPS 版本要求
FILTER 函数属于 WPS 新版动态数组函数,需要较新版本的 WPS 才能使用。如果你的 WPS 中找不到这个函数,建议更新到最新版本。
② 条件区域要对应
筛选条件的区域行数,必须和要筛选的区域行数一致,否则会返回错误。比如筛选区域是 A2:C100,条件区域也必须是第 2 行到第 100 行。
③ 第三参数建议写上
虽然第三参数是可选的,但我建议每次都写上,比如写(空文本)。这样当没有符合条件的数据时,不会显示难看的错误。
④ Excel 用户
如果你用的是 Excel,Excel 365 和 Excel 2021 及以上版本也支持 FILTER 函数,用法完全一样,放心使用。
今天的分享就到这里。FILTER 函数是我最近用得越来越多的一个函数,它让数据筛选变得灵活又高效。
关于 FILTER 函数,你是否还有更好的用法?欢迎留言分享!
我是墨云轩,热衷分享办公小技巧,边学习,边分享,每天进步一点点!感谢您的阅读!
夜雨聆风