分享

Excel里有没有办法做出网页上搜索框那种实时输入提示的效果?

 王断天崖路 2018-03-11

当然可以了,如果会用VBA,那么几乎你看到的多数网站上的功能,它都能实现,因为它也是一种变成语言啊!


但是,今天我想给你讲的方法,不用VBA编程(VBA毕竟门槛太高了),而是使用函数和数据有效性即可完成。


实现的效果是怎样的呢?如图所示,当我们输入关键字之后,菜单就能自动变更为与关键字模糊匹配的选项,所以我们把这种菜单也叫做查询式下拉菜单或自适应下拉菜单。


一起来学习如何通过数据有效性和公式制作这样的下拉菜单。

Step1:数据源准备

如图所示,A列数据作为下拉菜单的数据源,首先需要对A了中的数据进行排序(升序降序均可),我们把菜单设置在E2单元格中。


Step2:设置下拉菜单

在设置数据验证窗口中,来源填入公式:

=OFFSET($A$1,MATCH($E$2&'*',$A$2:$A$15,0),,COUNTIF($A$2:$A$15,$E$2&'*'),1)


Step3:对公式的解读

①使用E2输入的数值和*组合,即$E$2&'*'来充当Match函数的第一个参数,来进行模糊查找匹配;

②对于公式COUNTIF($A$2:$A$15,$E$2&'*'),来计算在$A$2:$A$15数据列中,出现E2中输入内容的次数,这个公式返回的结果当做Offset函数的第四个参数,用来决定Offset函数偏移的行高;

③最外层的Offset函数,它的语法形式是OFFSET(reference,rows,cols,height,width),翻译一下就是OFFSET(参照单元格,偏移行数,偏移列数,行数,列数)


所以整个公式的意思是:OFFSET($A$1,MATCH($E$2&'*',$A$2:$A$15,0),,COUNTIF($A$2:$A$15,$E$2&'*'),1)

以A1单元格为参照,向下偏移到E2单元格所在的第一个位置,然后总行数为E2单元格中的内容所重复的个数,把这个区域作为下拉菜单的数据源。


举例:在E2单元格中输入【广】字,由于模糊查询,会查找出来广发集团、广汇集团、广汽集团,以A1单元格为参照,向下偏移3行,总行高为3,这个数据区域刚好是广发集团、广汇集团、广汽集团数据,然后再以这三个数据作为下拉菜单的数据源,这样是所谓的查询式下拉菜单。


「精进Excel」系头条签约作者,关注我,如果任意点开三篇文章,没有你想要的知识,算我耍流氓!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多