你在Excel里大海捞针,而真正的函数高手,只是写下几个字母,就能让数据自己排好队走出来,今天介绍一个强大的新函数:FILTER。
“小星,我从系统导出的几千行销售数据,怎么能快速筛选出华东区、销售额超过10万的所有订单,并按时间排序?” 答案是:一个FILTER函数,加一个SORT函数,十秒搞定手工半天的工作。
上期我们详细讲解了VLOOKUP、INDEX+MATCH和XLOOKUP等查找函数。今天小星要为你补上最后一块拼图——FILTER函数,并完整展示何时该用查找,何时该用筛选。
01 基础重温:查找函数的本质
首先明确一点:查找函数和筛选函数解决的是不同需求。
查找函数的本质:“一对一”匹配。给你一个钥匙(查找值),在一堆抽屉(数据区域)里,找到对应的那个抽屉,拿出里面的东西(返回值)。
筛选函数的本质:“一对多”匹配。给你一个条件,在一堆数据里,把所有符合条件的数据整行整行地拿出来。
理解了这一点,就知道为什么有了VLOOKUP和XLOOKUP,我们还需要FILTER。
02 FILTER函数:条件筛选的终极武器
如果你是Office 365或Excel 2021用户,FILTER函数将彻底改变你处理数据的方式。
基本语法
=FILTER(要筛选的数据区域, 筛选条件, [没有结果时返回的值])
参数解析
1. array(要筛选的数据区域):需要从中筛选数据的区域,可以是单列,也可以是多列。
2. include(筛选条件):一个返回TRUE或FALSE的逻辑表达式或数组。只有对应位置为TRUE的行会被筛选出来。
3. [if_empty](可选):如果没有满足条件的数据时返回的值。如果不提供,会返回#CALC!错误。
实战示例
假设我们有一个销售数据表(A1:E11):
· A列:订单ID
· B列:销售区域
· C列:产品类别
· D列:销售额
· E列:销售日期
场景1:筛选单个条件的数据
=FILTER(A:E, B:B="华东区")
效果:返回所有销售区域为“华东区”的完整行(所有列)。
场景2:筛选多个条件(且关系)
=FILTER(A:E, (B:B="华东区") * (D:D>100000))
注意:乘号(*)表示“且”(AND关系)。两个条件都满足的行才会被筛选出来。
场景3:筛选多个条件(或关系)
=FILTER(A:E, (B:B="华东区") + (B:B="华北区"))
注意:加号(+)表示“或”(OR关系)。满足任一条件的行都会被筛选出来。
场景4:没有结果时的友好提示
=FILTER(A:E, D:D>1000000, "没有找到超过100万的订单")
当没有销售额超过100万的订单时,显示自定义提示,而不是错误。
FILTER的强大之处
1. 动态数组:返回的是动态数组,会自动扩展到需要的行数,无需手动拖动填充。
2. 保留完整行:返回符合条件的整行数据,而不只是某个单元格。
3. 组合条件灵活:可以构建复杂的组合条件(且/或关系)。
4. 与其他函数无缝结合:可与SORT、UNIQUE、XLOOKUP等函数嵌套使用。
03 FILTER + SORT:动态报表的黄金组合
FILTER函数很少单独使用,最常与SORT函数组合,创建动态排序报表。
基础组合
=SORT(FILTER(A:E, B:B="华东区"), 4, -1)
效果:
1. 先筛选出“华东区”的所有订单。
2. 然后按第4列(销售额)降序排列(-1表示降序)。
进阶组合:筛选、排序、去重一步到位
=UNIQUE(SORT(FILTER(A:E, (B:B="华东区")*(D:D>50000)), 5, 1))
效果:
1. 筛选出华东区且销售额>5万的订单。
2. 按第5列(销售日期)升序排列。
3. 去除完全重复的行。
04 FILTER与查找函数的对比与选择
为了更清晰地理解何时使用FILTER,何时使用查找函数,请看下面的对比分析:
选择指南:我该用哪个?
场景一:根据工号查姓名
· 需求:我有工号“E001”,想知道对应员工的名字。
· 选择:VLOOKUP或XLOOKUP
· 原因:一对一查找,返回单个值。
场景二:列出市场部所有员工
· 需求:我想看到市场部所有员工的完整信息。
· 选择:FILTER
· 原因:一对多筛选,需要返回多行完整数据。
场景三:根据姓名查工号(工号在姓名左边)
· 需求:我有员工姓名,想查他的工号。
· 选择:INDEX+MATCH或XLOOKUP
· 原因:一对一查找,且需要向左查找。
场景四:筛选出第一季度销售额>10万的所有订单,并按金额排序
· 需求:多条件筛选,且需要排序。
· 选择:SORT(FILTER(...))
· 原因:多条件筛选+排序,FILTER最擅长。
场景五:兼容旧版Excel的复杂查找
· 需求:文件需要在Excel 2019及以下版本打开。
· 选择:INDEX+MATCH组合
· 原因:兼容性好,功能强大。
05 FILTER的兼容性方案:旧版Excel的替代方法
如果你使用的是不支持FILTER函数的旧版Excel,可以通过以下方法实现类似功能:
方法一:高级筛选
1. 设置条件区域。
2. 【数据】→【高级】。
3. 缺点:不是动态的,数据变化需手动刷新。
方法二:INDEX+AGGREGATE组合公式
=IFERROR(INDEX($A$2:$E$100, AGGREGATE(15, 6, (ROW($A$2:$A$100)-1)/($B$2:$B$100="华东区"), ROW(1:1)), COLUMN(A:A)), "")
这是一个复杂的数组公式(需Ctrl+Shift+Enter输入),向右向下拖动可模拟FILTER效果。
方法三:Power Query
1. 将数据导入Power Query。
2. 应用筛选条件。
3. 关闭并上载。
4. 优点:数据更新后可一键刷新。
建议:如果条件允许,升级到Office 365或Excel 2021,FILTER函数能极大提升效率。
选择速查表(增强版)
· “我有一个值,想找对应的另一个值” → XLOOKUP或VLOOKUP
· “我要向左查找,或者兼容旧版本” → INDEX+MATCH
· “我要列出所有符合某个条件的数据行” → FILTER
· “我要筛选+排序+去重” → FILTER+SORT+UNIQUE组合
· “数据是横着排的” → HLOOKUP(但建议转置数据后用其他函数)
07 实战演练:构建动态数据查询仪表板
让我们用所学知识,构建一个完整的销售数据查询系统:
步骤1:准备原始数据
· A列:订单ID,B列:销售区域,C列:产品类别,D列:销售额,E列:销售日期
步骤2:创建查询控制面板
· G1单元格:选择区域(数据验证:华东、华北、华南...)
· G2单元格:输入最低销售额
· G3单元格:选择排序方式(1=按销售额降序,2=按日期升序...)
步骤3:构建动态查询公式
=LET(
区域, G1,
最低销售额, G2,
排序方式, G3,
筛选条件, (B:B=区域) * (D:D>=最低销售额),
筛选结果, FILTER(A:E, 筛选条件, "无符合条件的数据"),
IF(排序方式=1, SORT(筛选结果, 4, -1), # 按销售额降序
IF(排序方式=2, SORT(筛选结果, 5, 1), # 按日期升序
筛选结果)) # 不排序
)
步骤4:添加汇总统计
在旁边添加:
· 订单总数:=COUNTA(FILTER(A:A, (B:B=G1)*(D:D>=G2)))
· 销售总额:=SUM(FILTER(D:D, (B:B=G1)*(D:D>=G2)))
· 平均销售额:=AVERAGE(FILTER(D:D, (B:B=G1)*(D:D>=G2)))
步骤5:美化与优化
· 使用条件格式突出显示高销售额订单。
· 添加图表,动态展示筛选结果。
· 设置打印区域和页面布局。
08 小结:从查找值到筛选数据的思维升级
学习路径建议
第一阶段:掌握核心查找(1周)
1. 理解绝对/相对引用(F4键切换)。
2. 掌握VLOOKUP精确匹配。
3. 学会IFERROR处理错误。
第二阶段:学习高级查找(1周)
1. 掌握INDEX+MATCH组合。
2. 了解近似匹配的应用场景。
3. 学习通配符在查找中的应用。
第三阶段:掌握现代函数(如条件允许,立即学习)
1. 全面学习XLOOKUP。
2. 掌握FILTER函数。
3. 学习SORT、UNIQUE、SEQUENCE等动态数组函数。
第四阶段:构建系统思维(持续)
1. 将多个函数组合解决复杂问题。
2. 建立可复用的数据查询模板。
3. 学习Power Query作为大数据量备选方案。
关键要点总结
1. 查找与筛选是两种思维:
· 查找是“点对点”,筛选是“面对面”。
· 明确需求,选择正确工具。
2. FILTER是游戏规则改变者:
· 它让条件筛选变得前所未有的简单。
· 动态数组特性减少大量维护工作。
· 与其他新函数组合,功能强大。
3. 兼容性是现实考虑:
· 了解团队或客户的Excel版本。
· 新函数虽好,但需确保文件能在目标环境打开。
· 掌握传统方法作为备选方案。
4. 理解原理比记忆公式更重要:
· 知道每个函数的“设计哲学”。
· 理解为何在这个场景用A函数,在那个场景用B函数。
· 能够根据新需求,组合现有工具创造解决方案。
5. 实践是唯一捷径:
· 找一个真实工作数据练习。
· 从简单需求开始,逐步增加复杂度。
· 遇到错误不要怕,学会使用F9键调试公式。
小星的终极建议
如果你的Excel版本支持新函数(Office 365/2021/新版WPS):
· 立即开始使用XLOOKUP替代VLOOKUP。
· 将FILTER作为条件筛选的首选工具。
· 探索动态数组函数如何协同工作。
如果你需要使用兼容旧版的文件:
· 掌握INDEX+MATCH作为主力查找工具。
· 使用高级筛选或Power Query实现复杂筛选。
· 在个人分析中使用新函数,输出时转为值。
无论使用哪个版本:
· 培养数据思维:先理清需求,再选择工具。
· 建立标准化流程:相同问题,相同解法。
· 持续学习:Excel在进化,你的技能也要更新。
动手时刻:
打开你的Excel,尝试完成以下挑战:
1. 用FILTER函数筛选出某个部门的所有员工。
2. 用FILTER+SORT组合,筛选出销售额前10的订单。
3. 用FILTER+UNIQUE组合,列出所有有销售记录的区域。
4. (高阶)创建一个动态查询面板,可通过下拉菜单选择不同筛选条件。
遇到具体问题?在评论区详细描述你的数据和需求,小星会为你提供定制解决方案!
小星说:Excel不再是一个简单的电子表格,而是一个强大的数据处理平台。从查找单个值到筛选整个数据集,这是思维的升级,也是效率的飞跃。掌握这些工具,让你在数据世界中游刃有余!