Hello,大家好,大家工作中有没有遇过这样的情况,下拉菜单非常的项目很多多,想手动输入还被提示输入错误,这个时候我们只能一个一个的点选非常的麻烦,效率很低,今天就跟大家分享下如何制作智能式下拉菜单,可以根据我们输入的数据给出下拉的列表,能够快速提高工作效率,如下图,当我们在智能下拉中输入小米,下拉中仅仅会出现小米的选项,而普通下拉无法输入内容,只能在下拉中选择
一、3个函数制作智能下拉菜单我们是使用函数完成的,在这里我们需要用到3个函数:offset、match以及countif函数,对于match以及countif函数都是我们常用的函数,在这里就不多丛介绍了,我们来了解下这offset函数的作用以及参数
Offset函数:offset是一个偏移函数,它以一个基点为原点进行偏移得到一个新的偏移区域
第一参数:参照区域,以选择的区域作为偏移基点 第二参数:行数,将基点区域在行方向移动多少行单元格 第三参数:列数,将以行方向移动过的区域,再以列方向移动多少个单元格 第四参数:高度,将第一第二参数移动过后的新区域取多少列 第五参数:宽度,将第一第二参数移动过后的新区域取多少行
第2到第5参数如果不填写则需省略
offset函数会根据一个单元格的位置,移动得到另一个新的数据区域,它返回的结果是一个区域,并不是一个单元格,所以常与函数进行嵌套使用,这个函数经常用于制作动态图表
二、制作智能下拉首先我们需要对数据进行排序,这一点非常重要,如果不排序是不能达到这样的效果的,然后我们点击想要制作智能下拉的单元格,点击数据找到数据验证,在允许中找到序列,然后输入函数:
=OFFSET($A$1,MATCH(C2&"*",$A:$A,0)-1,,COUNTIF($A:$A,C2&"*"))
紧接着我们点击出错警告,将输入无效数据时显示出错警告前面的对勾去掉,点击确定,这样的话智能下拉就完成了
下面跟大家简单的介绍先函数
=OFFSET($A$1,MATCH(C2&"*",$A:$A,0)-1,,COUNTIF($A:$A,C2&"*"))
第一参数:基点,$A$1,基点单元格,也就是我们表头的位置,需绝对引用
第二参数:移动的行数 ,MATCH(C2&"*",$A:$A,0)-1,在这里match函数的作用是查找在下拉中输入的数据在A列的位置,第一参数:C2&"*",在这里星号是通配符代表任意多个字符,比如我们在单元格中输入vivo。就是查找以vivo开头的单元格的位置,因为有重复值的存在,函数仅仅会返回都一个查找的结果,在这里我们需要将查找结果减去1是因为有表头的存在,如果没有表头的话在这里就不用减去1了
第三参数:移动的列数,以为这个仅有一列,所以我们可以将第三参数省略
第四参数:偏移后区域的高度,COUNTIF($A:$A,C2&"*"),在这里我们使用countif计数同样的在这里我们也使用了C2&"*",我们假设单元格中输入vivo,他就会统计以vivo开头的单元格的个数
第五参数:偏移后区域的宽度,仅为数据仅有1列,所以可以省略第五参数
因为offset获得是一个数据区域,当我们输入不同的数据,函数就会返回不同的数据区域,从而达到智能下拉的效果
智能下拉的制作还是需要一定的函数基础的,如果你觉得难的话,可以直接使用上面的函数,替换相应的单元格位置即可
我是excel从零到一,关注我持续分享更多excel技巧