我们在上一篇文章中介绍了根据已有项目生成一级、二级、三级联动的下拉菜单的方法。有的时候,我们并不需要在下拉菜单中列出全部项目,尤其是当项目比较多的时候。比如企业的客户有几百个,我们并不想在下拉菜单中列出全部的客户名称,而是希望在输入关键字时,下拉菜单中列出仅包含该关键字的所有客户名称。本文将介绍如何根据输入的关键字,创建含该关键字的下拉菜单。要求:在D2单元格输入关键字时,下拉菜单列出包含该关键字的所有菜品,并且在选择菜品后,E2单元格出现对应的价格。 1、在G2单元格输入公式 =IFERROR(INDEX($A$2:$A$13,SMALL(IF(ISNUMBER(SEARCH($D$2,$A$2:$A$13)),ROW($A$2:$A$13)-1),ROW(A1))),"")该公式为数组公式,公式输入后按Ctrl+Shift+Enter。拖动填充柄,将G2单元格的公式复制到G3:G13单元格区域。G2:G13单元格区域作为辅助列,列出包含D2关键字的所有菜品。(1)Index+Small+Row函数组合用于列出包含关键字的所有菜品。关于Index+Small+Row函数组合的详细解析请阅读(2)search()函数用于返还指定的字符在字符串中第一次出现的位置。SEARCH($D$2,$A$2:$A$13)用于确定D2单元格输入的关键字是否包含在A2:A13单元格中的各菜品名称中。如果菜品名称不包含关键字,函数将返回错误值。(3)isnumber()函数是一个逻辑判断函数。ISNUMBER(SEARCH($D$2,$A$2:$A$13))结果为True或False,当菜品名称包含关键字时,返回True,当菜品名称不包含关键字时,返回False。IF(ISNUMBER(SEARCH($D$2,$A$2:$A$13)),ROW($A$2:$A$13)-1)用于返回包含关键字的菜品名称出现在A2:A13单元格区域的第几行。2、选中D2单元格,点击【数据】选项卡下的【数据验证】按钮,在弹出的对话框中进行如下设置:“允许”选择“序列”,“来源”输入公式 =$G$2:$G$13。点击【数据验证】对话框的【出错警告】选项卡,取消勾选“输入无效数据时显示出错警告”。在E2单元格输入公式=IFERROR(VLOOKUP(D2,A2:B13,2,FALSE),"")
|