excel 根据条件提取数据,就是从原始明细表里面,按照设定的筛选规则,把符合条件的整行或者指定列数据单独抽取出来,常用实现方式分为三类,分别是高级筛选提取,新版 FILTER 函数动态提取,还有老版本搭配 INDEX SMALL 数组公式提取,很多用户需求不一样,老版本 excel 没有 FILTER 函数,只能使用传统数组公式,新版微软 365 支持 FILTER 函数,输入一次公式就可以自动溢出全部匹配结果,操作非常简便,高级筛选的优势是不需要写复杂公式,适合不熟悉函数的用户,可以直接把符合条件的数据复制到新区域,之所以要掌握多种方案,是因为单条件多条件动态更新静态提取场景不同,高级筛选属于静态提取,原始数据改动之后需要重新运行,FILTER 属于动态数组,数据源更新结果自动刷新,学习的时候可以先掌握高级筛选,再学习 FILTER 函数,最后了解老版本 INDEX SMALL 方案,学会之后可以处理订单提取人员信息提取这类业务,快速把符合条件的数据单独导出。
一 方案一 高级筛选提取数据
这个方案不需要写函数公式,适合新手,支持单条件和多条件,并且或者逻辑,还可以把结果输出到别的位置,原始表保持不变
操作步骤
第一步 准备原始数据表,第一行设置表头
第二步 在空白区域制作条件区域,表头文字和原数据表表头完全一致
第三步 填写筛选条件,同一行代表并且,不同行代表或者
第四步 点击数据选项卡,点击高级筛选按钮
第五步 选择将筛选结果复制到其他位置
第六步 设置列表区域,选中全部原始数据包含表头
第七步 设置条件区域,选中条件区域包含表头和条件
第八步 在复制到选项,选择目标区域起始单元格
第九步 点击确定,符合条件的数据就提取到目标位置
补充要点 高级筛选提取属于静态结果,原始数据新增修改之后,需要重新打开高级筛选再次执行提取,不会自动更新
二 方案二 FILTER 函数动态提取 新版 excel 微软 365
FILTER 是动态数组函数,输入公式之后自动溢出全部匹配行,数据源变动结果自动刷新,是目前最推荐的方法
函数语法 FILTER (数据区域,条件,[为空时返回的值])
单条件提取示例
=FILTER (A2:D100,B2:B100="销售")
含义 A2 到 D100 全部数据,提取 B 列等于销售的整行数据
多条件并且提取示例
=FILTER (A2:D100,(B2:B100="销售")(C2:C100>5000))
多条件或者提取示例
=FILTER (A2:D100,(B2:B100="销售")+(B2:B100="行政"))
操作步骤
第一步 点击目标区域第一个空白单元格
第二步 输入对应的 FILTER 公式
第三步 按下回车,符合条件的数据自动向下向右溢出填充
第四步 如果原始数据修改,提取结果自动同步更新
补充要点 如果没有匹配数据,公式会返回错误值,可以增加第三参数,比如 = FILTER (A2:D100,B2:B100="销售","无匹配数据")
三 方案三 INDEX 加 SMALL 老版本提取方案
老版本 excel 没有 FILTER 函数,使用 INDEX 配合 SMALL ROW 实现条件提取,属于数组公式
基础思路 SMALL 负责找出符合条件数据对应的行号,INDEX 根据行号取出对应整行数据
示例公式
=INDEX (A:A,SMALL (IF ($B$2:$B$100="销售",ROW ($B$2:$B$100)),ROW (A1)))
操作步骤
第一步 在目标单元格输入公式
第二步 旧版 excel 需要按下 ctrl 加 shift 加回车三键确认数组公式
第三步 向下填充公式,依次提取下一条匹配数据
补充要点 这个方案缺点是公式复杂,数据量大计算卡顿,匹配完所有数据之后会出现错误值,需要搭配 IFERROR 屏蔽错误,比如外层套 IFERROR
四 三种方案对照表
| 方案 | 是否动态更新 | 是否需要写公式 | 适用版本 | 特点 |
|---|---|---|---|---|
| 高级筛选 | 否 | 不需要 | 全部版本 | 操作简单,多条件并且或者,静态提取 |
| FILTER 函数 | 是 | 需要 | 微软 365 新版 excel | 动态溢出,公式简洁,推荐优先使用 |
| INDEX SMALL | 否 | 需要 | 所有老版本 excel | 兼容旧版本,公式复杂 |
五 进阶要点与易错点
1 FILTER 提取出来的数据是动态数组,如果手动修改溢出区域里面任意单元格,会出现溢出错误,不能直接改动溢出区域内部单元格
2 高级筛选条件表头不能和原表头存在多余空格,否则根据条件提取数据会没有结果
3 多条件并且的时候,条件之间使用乘号,或者使用加号,这个是 FILTER 函数里面逻辑运算规则
4 如果只需要提取某一列,不是整行,FILTER 第一个参数只选中单列区域即可
5 提取的数据如果包含公式,复制或者 FILTER 提取之后,单元格引用会自动偏移,需要注意绝对引用锁定,添加美元符号
6 提取结果如果存在重复数据,FILTER 默认全部保留,如果需要去重提取,可以搭配 UNIQUE 函数嵌套
【常见问题】
问题 1 excel 根据条件提取数据,新版 excel 根据条件提取数据用什么函数最方便
回答 1 excel 根据条件提取数据,新版微软 365 推荐 FILTER 函数,excel 根据条件提取数据的时候,FILTER 可以自动溢出全部匹配行,原始数据变动结果自动刷新,是目前 excel 根据条件提取数据最简单的函数方案。
问题 2 excel 根据条件提取数据,老版本 excel 没有 FILTER 怎么做 excel 根据条件提取数据
回答 2 excel 根据条件提取数据,老版本 excel 没有 FILTER 函数,可以使用高级筛选,或者 INDEX 搭配 SMALL 数组公式实现 excel 根据条件提取数据,高级筛选不需要公式,INDEX SMALL 适合需要公式动态输出的 excel 根据条件提取数据场景。
问题 3 excel 根据条件提取数据,高级筛选做 excel 根据条件提取数据之后,修改原始数据为什么提取结果不变
回答 3 excel 根据条件提取数据,高级筛选属于静态提取,excel 根据条件提取数据生成结果之后,修改原始明细,提取结果不会自动刷新,需要重新打开高级筛选窗口,再次执行 excel 根据条件提取数据。
问题 4 excel 根据条件提取数据,FILTER 函数根据条件提取数据没有匹配项显示错误怎么办
回答 4 excel 根据条件提取数据,FILTER 函数没有匹配数据默认返回错误值,想要优化 excel 根据条件提取数据,可以在公式第三参数填写提示文字,设置无匹配数据的提示,完善 excel 根据条件提取数据的显示效果。
【免责申明】
本文为 excel 根据条件提取数据操作教程,内容基于通用版本 excel 功能编写,不同版本 excel 以及 WPS 表格函数支持情况会存在差异,文中操作方法仅供学习参考,实际业务数据处理请结合自身软件版本,本文不承担因公式或者条件设置错误造成提取结果异常等相关责任。


