在单元格中设置下拉菜单能有效提高表格录入和查找效率,还能规范数据,避免输入错误,是很受欢迎的实用功能。网上很多文章在讲解设置方法时,用的案例数据都很简单规范,实现起来比较容易。但在实际工作中,数据不一定规范,这样生成的菜单往往会存在一些瑕疵、甚至错误。本文针对实际工作数据生成菜单中遇到的问题,分享处理解决方法,和大家一起玩转excel下拉菜单。
一级菜单
1、设置方法
选中需要设置下拉菜单的单元格,点击“数据”菜单下的“数据有效性”,将“允许”项设置为“序列”,单击一下“来源”输入框后,在表格里选取单元格区域作为菜单选项,或者手动在来源框输入单元格区域作为菜单选项,点击确定,菜单设置完成。
![91c978cf603547048ea94de1c31d5e5e.png](https://i-blog.csdnimg.cn/blog_migrate/95b4391c49f40c25d4d41de968bc0d8c.jpeg)
其中来源框输入公式为:=$A$1:$E$1,即将A1至E1单元格数据作为菜单的下拉选项。
可一次性选中I2至I5单元格,一步设置多个单元格的下拉菜单。
2、菜单自动更新、消除空值
实际工作中,上面的案例可能会需要中途增加菜单选项的要求,比如要求增加F1单元格为菜单选项。这时我们就需要重新设置一次菜单,选择单元格修改来源看的输入公式为:=$A$1:$F$1。
为避免每次增加选项都要重新进行菜单设置,可以在设置来源公式时,直接将预计可能会增加的菜单项单元格输入到公式里,比如上面的案例,虽然F1没有数据,但我们在设置来源公式时可以直接输入:=$A$1:$F$1。这样在后期F1单元格补充输入数据时,数据就会自动出现在菜单选项中,得到达到自动更新菜单的效果。
但是,这样生成的菜单有个小瑕疵,即当F1还未填入数据时,菜单选项对应F1的位置会出现空白,不太合适。我们需要实现当F1有数据就显示在菜单选项中,当F1没数据时,空白区域不显示在菜单中。方法如下:
修改来源位置的公式为:=OFFSET($A$1,,,1,MATCH(CHAR(1),$A$1:$F$1,-1)),公式里的$A$1:$F$1为预设菜单的区域。
3、消除菜单中间空值
有时候,会遇到菜单来源单元格区域中间某个单元格为空值,比如上面的案例中D1单元格为空,E1格有数据,需要消除菜单中的空白。可以通过设置辅助数据的方式,先将A1至F1单元格区域进行重新排列,将空白值放到区域的末端,再设置来源位置公式,具体如下:
![4b53aad2775928f41b358983150d036f.png](https://i-blog.csdnimg.cn/blog_migrate/2a874e61a2265564fd687c1515836af8.jpeg)
L5至Q5单元格为重新排列辅助区域,作为菜单选项来源区域。L5单元格公式为=IFERROR(INDEX($A$1:$F$1,SMALL(IF($A$1:$F$1<>