excel高级筛选结果自动更新的两种方法是什么(高级筛选会自动更新吗)
导语:excel高级筛选结果自动更新的两种方法,收藏必备
前言
excel中的高级筛选功能很强大,对于从大量数据中,按条件挑选提取数据的要求,处理起来很高效。不足之处是筛选结果不能随着基础数据改变自动更新,本文提供两种方法来弥补这个不足,实现筛选结果的自动更新,希望对用到的人有所帮助。
案例说明
要求从A列姓名中,将名字中有“曹”字的提取出来放到C列中。
高级筛选结果
我们先来看看excel自带的高级筛选功能效果,点击高级筛选后,进行如下设置,很轻松就得到C列的结果,见下图:
E列为辅助列——条件区域
当我们把基础数据中即A列的曹夫人改成曹甜甜时,C列中结果还是曹夫人,不会跟着改变,必须再次打开高级筛选框后,点击确定结果才会变过来,相当于又设置了一次筛选。
我们希望当修改A列数据时,不需其他操作,C列的筛选结果自动更新,来看看实现方法:
方法一:函数方案
通过函数编辑公式,替代表格自带的筛选功能。为便于比较,函数方案结果放在B列,B3单元格公式为:
=IFERROR(INDEX($A$3:$A$100,SMALL(IF(ISERROR(FIND("曹",$A$3:$A$100)),4^9,ROW($A$3:$A$100)-2),ROW(A1))),"")
数组公式,CTRL+SHIFT+ENTER三键同时按,公式向下复制填充。结果为:
此时在A列基础数据中增减修改数据,B列会自动更新结果,C列不更新。函数方案无需E列辅助数据。
方法二:VBA方案
用VBA通过表格的Worksheet_Change,触发运行筛选代码,实现筛选结果的即时更新。
首先录制筛选的宏代码:
记住圆框标记的宏名“筛选”,后面代码中要用到,点击确定后,操作一次高级筛选,停止录制宏。
打开VBA界面,双击下图中左侧红色方框“Sheets(Sheets)”,通过下拉三角符号分别选定好下图中的两个椭圆框内容,然后在代码界面中,输入大红方框的代码。
设置数据所在表单代码
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row > 2 Then Call 筛选
If Target.Column = 5 And Target.Row = 3 Then Call 筛选
End Sub
关闭VBA界面完成,当修改基础数据时,C列筛选结果也实现了同步更新。
总结
本文只是抛砖引玉,其实案例功能在自动查找方面运用是非常广也是非常高效的,只是两种方案均需要对excel有一定程度的了解,若暂时理解不透也很正常,先收藏待需要的时候再作为参考也是不错的。欢迎留言沟通!
本文内容由小里整理编辑!