FILTER 函数:让Excel筛选像点外卖一样简单
- 2026-11-11 07:26:03
FILTER 函数:让Excel筛选像点外卖一样简单



周一早上接到个任务:院长要一份"成年男性患者清单",下午又要"未成年人或女性患者"的随访名单。以前得用高级筛选、复制粘贴、再删删改改,一上午就没了,而现在只用了两个公式。
FILTER 函数的基本语法
=FILTER(数组,条件,[无结果时的返回值])三个参数,逻辑清晰:
- 数组
:要筛选的数据区域 - 条件
:筛选标准 - 无结果返回值
:可选,找不到匹配时显示的提示
单条件筛选:最基础的用法
从 A 列(姓名)和 B 列(年龄)中筛出成年人:

=FILTER(A:B, B:B>=18, "无符合条件的数据")第一个参数 A:B是要返回的完整数据区域,第二个参数 B:B>=18是筛选条件。就这么简单,结果自动溢出到下方单元格,无需手动下拉填充。
多条件筛选:且/或的逻辑
同时满足(且)
下午第一个需求:成年男性患者。假设 C 列是性别:

=FILTER(A:C, (B:B>=18)*(C:C="男"), "无符合条件的数据")关键点:
多个条件用 *连接(表示"且")每个条件必须用括号括起来
满足其一(或)
第二个需求:未成年人或女性患者随访:

=FILTER(A:C, (B:B<18)+(C:C="女"), "无符合条件的数据")这里用 +连接,表示"或"的关系。逻辑运算在 Excel 中,*是 AND,+是 OR,记住这个就通了。
只返回特定列
有时候不需要返回全部数据,只要姓名:

=FILTER(A:A, (B:B>=18)*(C:C="男"), "无符合条件的数据")第一个参数改成 A:A,就只返回姓名列表。
实战场景(练习):
上午 9:00院长要各科室本月复诊患者名单:
=FILTER(A:E, (F:F="复诊")*(G:G=本月科室), "无数据")上午 11:00随访组要联系方式,但只要有姓名和电话:
=FILTER(A:A&D:D, H:H="需要随访", "今日无随访")下午 3:00临时要查某个医生的患者,用单元格引用实现动态筛选:
=FILTER(A:E, D:D=K1, "该医生无患者")改变 K1 单元格的医生姓名,结果自动更新。这才是真正的"动态"。
下午 5:00模糊查询某类疾病患者:
=FILTER(A:E, ISNUMBER(SEARCH("高血压", E:E)), "无相关患者")SEARCH支持通配符,ISNUMBER判断是否找到,组合使用实现模糊匹配。
上面的招式练完,再看看这五个必须知道的细节!
A2:C100排除 | |
B:B>=D1)可实现交互式筛选 | |
ISNUMBER(SEARCH())使用 | |
#CALC!错误 |
为什么说FILTER是游戏规则改变者?
以前做筛选:数据→筛选→复制→粘贴到新位置→删除筛选→完成。五步,还容易出错。
现在:一个公式,自动更新。源数据变了,结果跟着变。
下班前只需把模板保存好,以后再遇到这种需求,改个条件就可以了!好的工具不是让你加班更快,而是让你早点回家。FILTER 函数,值得每个Excel用户收藏。
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。