课程咨询 加我微信EXCEL880B 试学网址http://v.excel880.com
当Excel表格下拉菜单中的选项非常多时,你就需要一个搜索式下拉菜单。
最佳实践请参考我的VBA作品 超级拼音输入提示组件
就像百度搜索框一样,输入一部分内容,就会自动联想出相关的选项供你选择,无关的会自动被过滤掉。例如输入一个字“蔡”,就会把所有姓“蔡”的姓名都列出来。
而如果你使用普通的下拉菜单,你要拖到什么时候才会找到自己想要的数据?还不如不用下拉菜单呢。
所以,搜索式下拉菜单是不是挺实用的?
制作搜索式下拉菜单的步骤
先给原始数据按照姓名排序,接着就和普通的下拉菜单一样创建序列,在“来源”中输入公式“=OFFSET($A$1,MATCH(E2&"*",$A$2:$A$281,0),0,COUNTIF($A$2:$A$281,E2&"*"),1)”。
公式解释
整个公式其实就是一个OFFSET函数,OFFSET函数的第二个参数是个Match函数,用于获取以E2单元格内容开头的第一个匹配值的位置,例如你在E2中输入“蔡”,那么就会得到3。第四个参数是COUNTIF函数,用于统计以E2单元格内容开头的单元格数量。这样整个公式就会把包含E2单元格内容的所有选项找出来了。
如果你想要搜索出包含E2单元格内容的数据,可以将公式中的“E2&*”替换成“*E2&*”。
错误1
按照上面的步骤操作,很多人会遇到的第一个错误就是输入一个字之后,就遇到了Excel的警告。
这是因为,你没有将“数据验证”/“有效性”中的“出错警告”去掉。
错误2
输入第一个字之后,下拉菜单中的选项虽然少了很多,可是和我们输入的内容完全没有关系啊!
这是因为,你忘记了给所有原始的数据按照姓名排序。
错误3
下拉菜单搜索功能没有问题,可是没有得到“座位号”和“销量”。
这其实不是下拉菜单的错误,但因为“座位号”和“销量”是用Vlookup函数获取的(这种情况下,很多人会用Vlookup)。Vlookup函数要求数据升序排列,而表格中的姓名是降序排列的,所以得到了错误的值和空白值。
解决了所有的错误,你就可以得到完美的下拉菜单啦。
PS:这篇文章的步骤针对Excel,WPS中的下拉列表功能默认自动搜索功能,不需要这么麻烦。瞧,WPS也是有优点的嘛。
谢谢阅读,每天学一点,省下时间充实自己。欢迎点赞、评论、关注和点击头像。