Excel查找神器!FILTER轻松打败VLOOKUP
介绍
VLOOKUP函数虽然强大,但存在一些局限性,例如只能返回第一个找到的结果,不支持多条件动态筛选,以及不能自动更新筛选结果。
FILTER函数的基本语法
=FILTER(array, include, [if_empty])
参数解析:
- array:要筛选的数据区域。
- include:筛选条件,通常是一个包含逻辑判断的范围。
- if_empty(可选):如果没有符合条件的数据,返回的结果。
FILTER函数和VLOOKUP的基本对比
函数 | 功能特点 | 主要优点 | 局限性 |
VLOOKUP | 单条件查找,返回单个结果 | 简单直接,适合单列查找 | 无法返回多行数据,不能反向查找 |
FILTER | 多条件动态筛选,返回完整数据 | 灵活性高,支持多条件、动态更新,返回多行数据 | 仅在Excel 365和Excel 2019可用 |
案例一:返回符合条件的多个结果
求解问题
找出所有销售额大于5000的记录。
公式应用
=FILTER(B2:B11, B2:B11 > 5000, "没有符合条件的数据")
表格案例
姓名 | 销售额 | 日期 | 备注 |
张三 | 6000 | 2024-06-10 | 无 |
李四 | 5500 | 2024-06-11 | 无 |
王五 | 4800 | 2024-06-12 | 无 |
赵六 | 6200 | 2024-06-13 | 无 |
运算返回值
FILTER函数返回所有销售额大于5000的记录。
公式参数解析
- B2:B11:销售额数据区域。
- B2:B11 > 5000:筛选条件,销售额大于5000。
- "没有符合条件的数据":如果没有符合条件的数据,返回的结果。
温馨小贴士
确保数据区域和条件区域的尺寸匹配。
案例二:双向查找与多条件筛选
求解问题
筛选出所有“数学分数大于80且语文分数大于75”的学生信息。
公式应用
=FILTER(A2:C5, (B2:B5 > 80) * (C2:C5 > 75), "没有符合条件的数据")
表格案例
学生姓名 | 数学分数 | 语文分数 |
学生A | 85 | 78 |
学生B | 90 | 80 |
学生C | 75 | 90 |
学生D | 88 | 82 |
运算返回值
FILTER函数返回数学分数大于80且语文分数大于75的学生信息。
公式参数解析
- A2:C5:学生信息数据区域。
- (B2:B5 > 80) * (C2:C5 > 75):筛选条件,数学分数大于80且语文分数大于75。
- "
- "没有符合条件的数据":如果没有符合条件的数据,返回的结果。
温馨小贴士
使用乘法运算符来组合多个条件,确保每个条件都为TRUE时结果才为TRUE。
案例三:动态筛选并自动更新结果
求解问题
筛选出库存低于某个数值的产品。
公式应用
=FILTER(A2:A8, B2:A8 < 200, "没有符合条件的数据")
表格案例
产品名称 | 库存数量 | 产品描述 | 价格 |
产品1 | 150 | 描述1 | 10 |
产品2 | 250 | 描述2 | 15 |
产品3 | 180 | 描述3 | 20 |
产品4 | 120 | 描述4 | 25 |
运算返回值
FILTER函数返回库存低于200的产品信息。
公式参数解析
- A2:A8:产品名称数据区域。
- B2:A8 < 200:筛选条件,库存数量低于200。
- "没有符合条件的数据":如果没有符合条件的数据,返回的结果。
温馨小贴士
FILTER函数可以自动更新筛选结果,适用于动态变化的数据环境。
案例四:FILTER实现反向查找
求解问题
根据销售额反向查找出员工的姓名。
公式应用
=FILTER(A2:A11, B2:B11 = D6, "没有符合条件的数据")
表格案例
员工姓名 | 销售额 | 日期 | 备注 |
张三 | 6000 | 2024-06-10 | 无 |
李四 | 5500 | 2024-06-11 | 无 |
王五 | 4800 | 2024-06-12 | 无 |
赵六 | 6200 | 2024-06-13 | 无 |
运算返回值
FILTER函数返回销售额与D6单元格值相匹配的员工姓名。
公式参数解析
- A2:A11:员工姓名数据区域。
- B2:B11 = D6:筛选条件,销售额等于D6单元格的值。
- "没有符合条件的数据":如果没有符合条件的数据,返回的结果。
温馨小贴士
FILTER函数支持反向查找,这在VLOOKUP中是不可用的。
