Excel教程:通过查找关键词来动态筛选表格中的数据
作者:花花来源:部落窝教育发布时间:2022-02-28 14:46:39点击:5748
编按:
Hello 各位小伙伴们,大家好!在前面的文章里我们分享了通过查找替换和条件格式可以快速定位和匹配关键词的技巧,今天要跟大家分享的是通过查找关键词来动态筛选表格中的数据,这个也被广大网友称之为“关键词高级筛选”。
话不多说,一起来看看效果图:
相信有很多小伙伴一定非常好奇这种关键词筛选是怎么做出来的?
如果我告诉你要用到VBA,你会不会就打退堂鼓不想学了?
别怕,今天跟着文章一起操作一遍就会发现其实VBA非常简单的。
Step1:添加辅助列数据
我们选中B列,鼠标右键插入一列,在A3单元格输入辅助列,接着在A4单元格中输入公式=TEXTJOIN("",TRUE,TEXT(B4,"yyyy-mm-dd"),C4:K4)回车后下拉填充公式。填充完后将公式结果选择性粘贴为纯文本,通过函数将数据区域里面的值全部组合在一起,这样当我们检索关键词的时候就会以包含的形式查找到数据区域中所有内容了。
Step2:调出开发工具选项卡
因为下面我会使用到录制宏和查看代码,所以现在需要将软件中的开发工具选项卡调出来,在功能区鼠标右键,自定义功能区,找到开发工具勾选后确定就会在功能区看到开发工具选项卡了。
Step3:录制筛选宏
在开发工具选项卡中找到录制宏按钮,点击开始录制宏,宏名称随便取一个名字,也可以是默认的名称,这里我们演示的录制宏叫“筛选”。确定后接下来的所有操作都会被软件记录下来。我们对第三行的标题行数据进行筛选,选择辅助列筛选按钮,文本筛选选择包含,随便输入一个数据中有的词,最后确定就会将数据中涵盖的内容筛选出来了。最后我们从开发工具选项阿卡进入VBE的模块里面就可以看到刚刚录制的宏代码了。
Step4:删除宏代码中多余的步骤
打开代码后会发现其中有两句代码是多余,我们选中Range("B3").Select和Range("A4:A20").Select删除,并且从Field:=1,后面添加空格和短划线是将代码换行。
Step5:添加单元格事件
从模块1中将处理好的代码复制,双击打开sheet1工作表,通用里面选择Worksheet 事件选择change随后将代码粘贴到change过程里面,这里需要将代码Criteria1:="=*小*"更改为Criteria1:="=*" & Target & "*"
Step6:代码效果体验
到此粗略的关键词筛选功能算是做好了,我们回到文中输入内容查看通过刚刚录制宏修改代码后效果,这是你会发现在任何单元格中输入内容都会触发筛选事件,不仅仅局限于在C1单元格中输入内容,那么想让内容只在C1单元格起作用咋办呢?
Step7:指定单元格区域触发事件
我们可以在代码中添加一个IF语句,用来判断输入内容的单元格是C1才执行筛选功能。附上修改后的代码:
_________________________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
'输入内容的单元格是C1才执行筛选
If Target.Address(0, 0) = "C1" Then
Range("a3").CurrentRegion.AutoFilter Field:=1, _
Criteria1:="=*" & Target & "*", _
Operator:=xlAnd
End If
End Sub
_________________________________________________________
最后成品的效果如下:
怎么样?看完文章后的你是否学会了录制宏的技巧?回过头来再看VBA是不是也并没有大家想的那么难。
以上就是今天跟大家分享的内容,感谢大家耐心看完,希望大家能够喜欢。
本文配套的练习课件请加入QQ群:902294808下载。
做Excel高手,快速提升工作效率,部落窝教育《一周Excel直通车》视频和《Excel极速贯通班》直播课全心为你!
扫下方二维码关注公众号,可随时随地学习Excel:
相关推荐:
将excel中的数据按照指定数量进行重复,非得用VBA才能实现吗?
Power Query的数据替换技巧比Excel函数更万能!
版权申明:
本文作者花花;同时部落窝教育享有专有使用权。若需转载请联系部落窝教育。