分享

输入关键字智能创建下拉菜单,这种高级玩法你会吗?

 初风Excel教学 2022-02-22
我们在上一篇文章中介绍了根据已有项目生成一级、二级、三级联动的下拉菜单的方法。
有的时候,我们并不需要在下拉菜单中列出全部项目,尤其是当项目比较多的时候。比如企业的客户有几百个,我们并不想在下拉菜单中列出全部的客户名称,而是希望在输入关键字时,下拉菜单中列出仅包含该关键字的所有客户名称。
本文将介绍如何根据输入的关键字,创建含该关键字的下拉菜单。

一、问题描述
如下图所示,A1:B13为菜品价格对照表。
要求:在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函数组合的详细解析请阅读
【Excel教程】一对多查询,这组Excel公式轻松搞定
INDEX函数用法请阅读【Excel教程】INDEX函数介绍及实例
SMALL函数用法请阅读【Excel教程】SMALL函数介绍及实例

(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。
(4)
IF(ISNUMBER(SEARCH($D$2,$A$2:$A$13)),ROW($A$2:$A$13)-1)用于返回包含关键字的菜品名称出现在A2:A13单元格区域的第几行。

(5)IFERROR函数用法请阅读【Excel教程】IFERROR函数介绍及实例



2、选中D2单元格,点击【数据】选项卡下的【数据验证】按钮,在弹出的对话框中进行如下设置:“允许”选择“序列”,“来源”输入公式 =$G$2:$G$13。

点击【数据验证】对话框的【出错警告】选项卡,取消勾选“输入无效数据时显示出错警告”。
设置完成后,单击确定。
在E2单元格输入公式=IFERROR(VLOOKUP(D2,A2:B13,2,FALSE),"")
用于根据D2菜品名称查找对应的价格。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多