❆
Excel如何制作搜索式下拉菜单
下拉菜单,我们之前有分享过什么一级,二级,三级下拉菜单,今天玩高级一点的~~根据关键字键入产品的全称
类似于百度搜索功能,只要输入关键字即可,可以节省我们录入数据的时间
先来个动态图展示效果
A列为产品全称,只需要在D列输入关键字即可看到产品的全称
下面来看一下它的制作方法
1:第一步:辅助列
我们在B列写上公式:老长了
=IFERROR(INDEX($A:$A,SMALL(IF(ISNUMBER(FIND(CELL("contents"),$A$2:$A$28)),ROW($2:$28)),ROW(A1))),"")
一脸懵逼 啥意思呀 我慢慢解释
公式是从里面看到外面的 首先看CELL("contents")
你如果不清楚怎么看公式的运算顺序,可以通过公式选项卡---点击公式求值---即可看到公式是先从哪里开始运算的
cell函数是根据参数返回单元格或所选区域左上角单元格的信息
CELL("contents")意思就是返回当前所选单元格或者区域左上角的值,意思就是等一下我们要在D2,D3,D4....输入关键字,那么它就代表这几个单元格的值
FIND(CELL("contents"),$A$2:$A$28)
再用FIND函数返回一个字符串在另一个字符串中出现的起始位置
这段的意思就是 找这个关键字(既D2,D3,D4....单元格的值)在$A$2:$A$28区域中的位置 如果包含了关键字返回一个数字,否则返回错误值#VALUE!
ISNUMBER(FIND(CELL("contents"),$A$2:$A$28))
ISNUMBER函数是判断引用参数或者指定单元格中的值是否为数字,如果是数字返回TRUE,否则返回FALSE
IF(ISNUMBER(FIND(CELL("contents"),$A$2:$A$28)),ROW($2:$28)),ROW(A1)))
IF函数是判断是否满足给定条件,如果满足返回一个值 ,如果不满足返回另一个值
在这里的意思就是当找到了关键字就返回一个行号,否则返回FALSE
SMALL(IF(ISNUMBER(FIND(CELL("contents"),$A$2:$A$28)),ROW($2:$28)),ROW(A1)))
SMALL函数是返回数据组中的第K个最小值
用SMALL函数根据返回的行号提取第一个最小值,通过公式往下填充依次提取第二、第三……最小值
INDEX($A:$A,SMALL(IF(ISNUMBER(FIND(CELL("contents"),$A$2:$A$28)),ROW($2:$28)),ROW(A1)))
用INDEX根据SMALL给出的值返回新的引用数据
=IFERROR(INDEX($A:$A,SMALL(IF(ISNUMBER(FIND(CELL("contents"),$A$2:$A$28)),ROW($2:$28)),ROW(A1))),"")
IFERROR函数是将错误值转为空,意思就是容错
解释的好辛苦~~我休息一下下再说~~
休息好了
解释了这么久 看一下这个公式的威力
从上图可以看出B列完全可以根据关键字返回包含关键字的产品全称
接下来的事情就好办了,只需要通过数据验证设置下拉列表 不解释了 直接给动态图
切记:数据有效性的出错警告一定要关了,不然会报错
写了一个多小时的时间 感觉写的好的 帮忙转发呗!!