工作中大家经常会用Excel数据验证制作下拉菜单,从而规范数据输入、节省数据输入时间。但是当下拉菜单的数据选项很多的时候,就会出现数据难找的困扰。比如下图,下拉菜单中的数据选项太多,通过拖动旁边的滚动条来“找出”需要的数据项很费时,直接降低了我们的工作效率。

如何让你的Office Excel下拉菜单,甩同事两条街,速Get

 

那有没有办法解决这种选项多数据难找的问题呢?有,我的方法就是搜索式下拉菜单!就如同在百度上搜索,输入关键字后会弹出下拉菜单显示包含关键字的搜索题目供我们选择。我们要做的效果就是在单元格中输入关键字,然后点击下拉菜单,菜单中只显示包含关键字的数据,从而提高数据录入效率。

如何让你的Office Excel下拉菜单,甩同事两条街,速Get

 

下图是我们本次教程的数据源,注意,必须对数据源按关键字排序,升序降序都可以。

如何让你的Office Excel下拉菜单,甩同事两条街,速Get

 

选择E2:E6单元格区域点击【数据】选项卡,单击【数据验证】,在弹出的“数据验证”对话框的“设置”选卡中设置验证条件为“序列”。

如何让你的Office Excel下拉菜单,甩同事两条街,速Get

 

在来源中输入公式:

=OFFSET($A$1,MATCH(E2&"*",$A$2:$A$17,0),0,COUNTIF($A$2:$A$17,E2&"*"),1)

如何让你的Office Excel下拉菜单,甩同事两条街,速Get

 

公式说明:

这里主要使用OFFSET函数返回包含关键字的数据。OFFSET函数的作用是根据指定的参照单元格,通过给定的偏移量返回新的引用数据。

OFFSET(参照系,行偏移量,列偏移量,新引用区域的行数,新引用区域的列数)

1.第一参数引用了A1单元格作为参照系。

2.第二参数用MATCH(E2&"*",$A$2:$A$17,0)确定行偏移量。MATCH为查找函数,根据查找值E2&”*”(*号是通配符,代表任意不确定字符)在$A$2:$A$17区域中查找,查找方式为0(精确查找)。当在E2单元格中输入关键字时,该函数将查找出包含关键字的数据在$A$2:$A$17区域中第一次出现的位置。

3.第三参数为0,因为我们的数据源只有A列一列,所以列偏移量为0,表示不偏移。简单来说,就是OFFSET函数以A1单元格为参照,不横向偏移,只向下偏移。

4.第四参数COUNTIF($A$2:$A$17,E2&"*")统计A2:A17区域内满足条件E2&"*",也就是包含E2单元格内的关键词的单元格出现的次数,也就是最终在数据验证下拉菜单中一共会出现几行。

5.第五参数为新引用区域的列数,因为只有A列一列,所以为1。

如下所示:OFFSET函数以A1为参照系向下查找,通过MATCH函数在A2:A17中找到包含E2关键字“碎花”的数据第一次出现的位置,是从A2开始的第10行,再通过COUNTIF函数找到总共有3行,最终在下拉菜单中返回这3行1列的数据。

如何让你的Office Excel下拉菜单,甩同事两条街,速Get

 

再回到教程当中。我们在“数据验证”对话框“来源”中输入公式后点击“确定”。但是当我们在E2单元格输入关键字“碎花”后,会立马弹出警告框,这是为什么呢?

如何让你的Office Excel下拉菜单,甩同事两条街,速Get

 

原因是我们输入关键字“碎花”后,由公式得到的下拉菜单中没有只含“碎花”两个字的选项,所以会报错。

如下图所示,我们需要再次选择E2:E6单元格区域点击【数据】选项卡【数据验证】按钮进入到“数据验证”对话框中,在“出错警告”选项卡中取消勾选【输入无效数据时显示出错警告】,然后点击“确定”即可。

如何让你的Office Excel下拉菜单,甩同事两条街,速Get

 

最后在F2单元格输入公式=IFERROR(VLOOKUP(E2,$A$2:$B$17,2,0),"") 。使用VLOOKUP函数在A2:B17单元格区域中查找E2数值所在位置,并返回对应的第2列(也就是B列)库存,0代表精确查找。当查找不到返回错误值时用IFERROR函数将错误值转为空。

如何让你的Office Excel下拉菜单,甩同事两条街,速Get

 

至此,搜索式下拉菜单就制作完成啦!搜索式下拉菜单可以成倍提高数据录入效率,尤其是下拉菜单选项很多的时候特别高效。同学们,赶紧打开你的excel去操作一下吧。

如何让你的Office Excel下拉菜单,甩同事两条街,速Get

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注