我们在录入数据的时候,为了录入的便捷性,通常会制作一个下拉菜单。
有时候,下拉菜单的选项较多,或者不好分类,要从长长的下拉菜单中去选择一个正确的选项,就非常的麻烦。
今天就来给大家分享一个模糊匹配的下拉菜单的制作方法,效果如下。
这样,是不是就非常的方便呢?
要实现这样效果也不复杂,只需要用到FILTER函数的动态区域即可。
注意:此函数目前仅适用于 Microsoft 365版本。
下面我们就来说一下操作步骤。
1.获得筛选列表
我们的表格中有一个筛选的列表,你可以放在你工作表的任何位置,或者一个单独的工作表里。
在D2单元格输入关键字的时候,可以通过公式,得到一个筛选列表。
这是怎么实现的呢?
我们在K2单元格写下了如下的公式:
=FILTER($H$2:$H$17,ISNUMBER(FIND(CELL(“contents”),$H$2:$H$17)))
函数解析:
其中黄色部分:CELL(“contents”)是可以获取到当前活动单元格的值。
CELL是获取单元格信息的函数,“contents”是获取的单元格内容。这样,下拉列表才可以根据我们输入的单元格的不同来筛选不同的内容。
因为filter函数不支持模糊筛选,我们用find函数查找包含有输入值(通过CELL函数获取的值)的单元格。
FIND函数,如果找到了输入值,会返回输入值在字符串中的位置;找不到会返回错误值。我们用ISNUMBER函数(判断是否为数字)进行判断,如果返回的是数字,证明包含了输入值,会得到“TRUE”,反之,表示没有包含,会得到“FLASE”。
所以,公式的ISNUMBER部分“ISNUMBER(FIND(CELL(“contents”),$H$2:$H$17)”会返回一组由true和false组成的数组。
把这组数,作为filter的第二参数,就可以筛选出我们想要的下拉列表,就是这些包含了“g”的下拉选项。
把下拉列表写入数据验证的序列中。
在目前的EXCEL和EXCEL365中是支持数组的动态扩展区域的,把获得的动态区域写入数据验证的序列中是非常容易的。
选中D列中想要设置下拉菜单的区域,点击【数据】–【数据验证】,然后在设置选项下处选择【序列】,在来源处,写入【$k$2#】(K2是刚才写入公式的单元格),这样写可以引用筛选的动态区域作为下拉的列表,而不是像我们平时设置普通下拉菜单一样,是选择的固定区域。
2.设置出错警告
我们需要在【数据验证】–【出错警告】对话框下面,取消勾选【输入无效数据时显示出错警告】选项。
好的,到此为止,我们的模糊匹配的下拉列表就制作完成了。
当然这个方法,是对支持filter数组动态区域的版本的方法。
如果你的是其他版本,可以试试这种方法:更高效的搜索式下拉菜单,你一定要懂!
如果你的是WPS版本,就更简单了,因为它本身是支持模糊匹配的下拉菜单的。
好的,以上就是今天分享的全部内容。