在Excel中制作具有联想能力的下拉列表的方法

利用Excel的数据验证功能 , 能够创建下拉列表方便用户快速输入一些常用数据 。当可能输入的数据很多时 , 从列表中找到需要的数据就不那么容易了 。实际上 , 可以通过设置获得类似于输入法的联想功能 , 当在单元格中输入需要数据的前几个字符后 , 在下拉列表中将只显示以这几个字符开头的选项 。本文介绍在Excel中制作具有联想能力的下拉列表的方法 。
1、启动Excel并打开工作表Sheet2 , 选择A1:B15单元格区域 , 按Ctrl+L键打开“创建表”对话框 , “表数据的来源”文本框中已经输入了选择单元格地址 , 单击“确定”按钮创建表 ,  。完成表创建后 , 对该字段按升序排序 。
图1 打开“创建表”对话框
2、在Sheet1工作表中选择A3:A30单元格区域 , 打开“数据验证”对话框 , 在“设置”选项卡的“允许”下拉列表中选择“序列”选项 , 在“来源”文本框中输入公式"=OFFSET(Sheet2!$A$2,MATCH(A3&"*",Sheet2!$A:$A,0)-2,,COUNTIF(Sheet2!$A:$A,A3&"*"))" , ;在“出错警告”选项卡中取消对“输入无效数据时显示出错警告”复选框的勾选 , 完成设置后单击“确定”按钮关闭对话框 ,  。
图2 “设置”选项卡中的设置
【在Excel中制作具有联想能力的下拉列表的方法】图3 “出错警告”选项卡中的设置
提示
这里在公式中使用MATCH()函数在Sheet2工作表的A列中定位Sheet1工作表中A3单元格字符开头记录所在的位置 , 同时去掉A1:A2这两个单元格的记录 , 获得的值作为OFFSET()函数偏移的行数 。使用COUNTIF()函数统计Sheet2工作表A列中名称和Sheet1工作表A3单元格字符开头相符的数据的个数 , 将获得值作为OFFSET()函数返回的高度 。另外要注意 , 这里必须取消“输入无效数据时显示出错警告”复选框的勾选 , 否则在输入部分字符后会报错将无法使用下拉列表选择 。
3、选择B3:B30单元格 , 在编辑栏中输入公式“=IF(A3="","",LOOKUP(A3,表_1))” , 按Ctrl+Enter键结束公式的输入 。此时在“货品名称”列中输入数据的前几个字符 , 在下拉列表中将只显示与之相配的选项 ,  。选择该选项后 , 在“入库时间”列单元格中将自动显示对应的入库时间 ,  。
图4 在下拉列表中选择选项
图5 自动显示入库时间

    推荐阅读