火星科技网您的位置:首页 >科普解惑 > 知识分享 >

excel 提取符合条件的所有数据 多方案实操详解

导读 在 excel 里面提取符合条件的所有数据,主流可以使用筛选 FILTER 函数 高级筛选这三类方案,筛选适合临时查看,FILTER 适合动态自动

在 excel 里面提取符合条件的所有数据,主流可以使用筛选 FILTER 函数 高级筛选这三类方案,筛选适合临时查看,FILTER 适合动态自动提取,原始数据更新之后结果会自动刷新,高级筛选适合多条件复杂匹配并且直接把结果导出到新区域,很多新手只会普通筛选,但是普通筛选只是隐藏不符合条件的行,数据本身还留在原表,不会单独抽取到别的位置,如果需要单独导出全部匹配记录,就需要选用 FILTER 或者高级筛选,多条件的时候可以同时设置并且关系或者或者关系,还支持模糊匹配,通配符查找,理解不同方案优缺点之后,可以根据数据量 是否需要动态更新 条件复杂程度,选择对应的方法完成全部匹配数据提取。

方案对照表

方案是否动态更新多条件支持输出位置适用版本
普通筛选否支持原表,仅隐藏不匹配行全部 excel 版本
FILTER 函数是,源数据改动自动刷新支持并且或者多条件指定空白区域,溢出输出365 2021 及以上版本
高级筛选否支持复杂多条件原表或者独立新区域全部 excel 版本

方案一 FILTER 函数动态提取

FILTER 是新版 excel 最推荐的方法,函数语法是 FILTER (数据区域,条件表达式,无匹配时显示内容)

举例子 A2:D20 是原始数据,想要提取 B 列等于销售部的全部行,公式写 =FILTER (A2:D20,B2:B20="销售部"),回车之后会自动溢出,一次性把全部符合条件的整行数据填充到下方单元格,不需要下拉填充。

多条件并且写法,多个条件用乘号连接,比如同时满足部门是销售部,金额大于 1000,公式 =FILTER (A2:D20,(B2:B20="销售部")(C2:C20>1000))

多条件或者写法,多个条件用加号连接,比如部门等于销售部或者部门等于财务部,公式 =FILTER (A2:D20,(B2:B20="销售部")+(B2:B20="财务部"))

第三个参数可以自定义,当没有任何匹配数据的时候,单元格显示自定义文字,比如写 "无匹配数据",避免出现 CALC! 报错。

方案二 高级筛选提取全部符合条件数据

第一步 先在表格空白位置搭建条件区域,条件区域第一行复制原表表头,下一行填写筛选条件,同行条件代表并且关系,不同行条件代表或者关系。

第二步 点击顶部数据选项卡,选择高级筛选,弹出高级筛选窗口。

第三步 选择方式,可以选择在原有区域显示筛选结果,也可以选择将筛选结果复制到其他位置,想要单独提取数据就选第二种。

第四步 列表区域选中全部原始数据表,条件区域选中刚才搭建好的条件区域,复制到选择目标空白区域的起始单元格。

第五步 点击确定,excel 就会把所有符合条件的数据复制到指定位置,注意这个结果是静态副本,源数据修改之后,提取出来的数据不会自动更新,需要重新执行高级筛选。

方案三 普通筛选临时查看

第一步 选中数据表表头,点击数据选项卡里面筛选按钮,表头每一列出现下拉箭头。

第二步 点击对应列下拉箭头,勾选或者设置数字条件,文本条件,完成筛选,不符合条件行会被隐藏。

第三步 筛选之后可以复制可见单元格,粘贴到别的区域,这种方式本质是手动复制筛选结果,属于静态数据,源数据改动之后需要重新筛选复制。

深度拓展要点

FILTER 溢出区域如果下方单元格已经有内容,会报 SPILL! 错误,这是高频报错,只需要清空溢出区域下方已有内容就可以恢复。

模糊条件提取可以搭配通配符星号,比如提取姓名包含张的所有数据,条件表达式写 B2:B20,"张"。

如果是旧版本 excel 没有 FILTER 函数,多条件提取所有数据可以用 INDEX SMALL IF 组合数组公式,这个公式比较复杂,适合老版本应急使用,缺点是运算速度慢,大数据量容易卡顿。

大数据几万行以上,FILTER 运算压力会变大,这种场景优先考虑高级筛选或者 Power Query,Power Query 可以刷新提取结果,适合长期持续更新的数据源。

易错点说明

并且和或者条件符号不要搞混,乘号代表同时满足,加号代表满足任意一项。

高级筛选的条件区域表头必须和原表表头文字完全一致,多一个空格都会识别失败。

FILTER 提取整行数据的时候,数据区域和条件区域行数必须保持一致,不然公式计算错误。

【常见问题】

问题 1 excel 提取符合条件的所有数据旧版本没有 FILTER 怎么办

回答 1 excel 提取符合条件的所有数据,如果是旧版本 excel 没有 FILTER 函数,可以使用高级筛选功能,或者 INDEX SMALL IF 组合数组公式,高级筛选操作更简单,适合一次性静态提取全部匹配记录。

问题 2 excel 提取符合条件的所有数据 FILTER 出现 SPILL! 报错是什么原因

回答 2 excel 提取符合条件的所有数据使用 FILTER 出现 SPILL!,是因为公式自动溢出的目标区域里面已经存在原有内容,清空溢出区域里面单元格内容,FILTER 就可以正常提取符合条件的所有数据。

问题 3 excel 提取符合条件的所有数据能不能多条件并且同时筛选

回答 3 excel 提取符合条件的所有数据支持多条件并且筛选,FILTER 里面多个条件用乘号连接,高级筛选把多个条件写在条件区域同一行,就可以实现同时满足全部条件,提取对应的所有数据。

问题 4 excel 提取符合条件的所有数据源表更新之后结果会自动变化吗

回答 4 excel 提取符合条件的所有数据,FILTER 方案源数据修改之后结果会自动刷新,高级筛选和普通筛选复制出来的数据是静态副本,源表更新之后不会自动变化,需要重新执行提取操作。

【免责申明】

本文基于微软 excel 常规版本编写,FILTER 函数仅支持 excel365 和 2021 及更高版本,不同版本界面和函数能力存在差异,内容仅作为学习参考,正式业务使用请核对提取结果,大数据量运算可能出现卡顿,因公式错误或者条件设置失误造成数据提取偏差,由使用者自行承担。