乐于分享
好东西不私藏

Excel动态搜索框

Excel动态搜索框
如下图所示,当在文本框中输入内容,表格会自动筛选出匹配的数据行,且随着输入内容越多,查询结果越准确,类似于搜索网站的即时响应,有更好的交互体验。
接下来就看看如何在Excel中实现这种功能。

1、插入文本框并设置链接单元格

点击菜单栏[开发工具]=>[插入]=>[ActiveX控件],选择[文本框]
在C2:E2数据区域插入文本框
右键单击文本框,选择[属性],在弹出的“属性”窗口中,将[LinkedCell]设置为“A2”,关闭属性窗口,并退出[设计模式]
用于将文本框中的内容链接到A2单元格。

2、设置原表的辅助列

在原表左侧新增两列,作为辅助区域。
L5单元格输入:
=IFERROR(FIND($A$2,N5),0)
用于查找A2单元的内容是否包含在“姓名”中,公式中使用IFERROR函数,当查不到内容时,则显示0。
K5单元格输入:
=IF(L5=1,$A$2&COUNTIF(L$5:L5,L5),"")
当A2单元格的内容出现在“姓名”首位时,则将A2单元格的内容与查找的次序拼接。
将以上的公式往下复制,让每一行都带上公式。

3、查找区域设置公式,匹配查找内容

在B5单元格输入公式:
=IFERROR(VLOOKUP($A$2&$A5,$K$5:$P$74,3,0),"")
并将公式复制到C5、D5、E5单元格,并调整VLOOKUP函数的第三个参数。
再将公式复制到查找区域的其他单元格。
公式中,使用IFERROR函数,当查找不到内容时,则显示空白。

说明

如果是最新版的Excel,就不要这么复杂,只需用FILTER函数,就能根据文本框输入的内容从原表中挑选出符合条件的数据。
因目前只有Excel2019版本,用不了FILTER函数,只能通过其他方式来实现,本文就是其中一种方法,不过使用的公式较多,当数据量较多时,运算量大,响应会比较慢。