使用数据有效性制作下拉菜单对大多数小伙伴来说都不陌生,但说到二级和三级下拉菜单大家可能就不是那么熟悉了。
什么是二级和三级下拉菜单呢?举个例子,在一个单元格选择某个省后,第二个单元格选项只能出现该省份所属的市,第三个单元格选项只能出现该市所属的区,效果如图所示。
看起来很神奇吧,其实要做出这样的多级下拉菜单非常容易,只需掌握两个技能:定义名称和数据验证(数据有效性)就能实现,下面一起来看看具体的操作步骤。
一、建立一级下拉菜单
操作要点:
【快速定义名称】选中省份名称所在的单元格区域“A1:D1”,在名称框输入“省”,回车确定;
【设置数据验证】选中要设置一级下拉菜单的单元格,打开数据验证,设置序列,来源输入“=省”,确定后即可生成下拉菜单,操作步骤如动画所示。
注意:如果设置数据验证时提示“指定的命名区域不存在”,则说明定义名称操作有误。
检查名称是否定义成功可以通过点击“公式-名称管理器”查看。
经过以上操作,完成了一级下拉菜单的设置。
二、建立二级下拉菜单
操作要点:
【批量定义名称】选中包含省份和所属市所在的单元格区域,即“A1:D6”,在“公式”选项卡“定义的名称”处,点击“根据所选内容创建”,进行批量定义名称,在创建时只勾选 “首行”;
完成后可以通过名称管理器检查,此时会多出几个省份所对应的名称。
【设置数据验证】选中要设置二级下拉菜单的单元格,打开数据验证,设置“序列”,来源输入“=INDIRECT(A14)”,确定后即可生成下拉菜单,操作步骤如动画所示。
为了后续设置三级菜单时方便一点,这里的A14我们使用的是相对引用。
这一步需要注意:公式中的A14需要根据实际情况去修改,这个公式的意思就是用一级菜单所生成的单元格数据作为二级菜单的生效依据。
经过以上操作,就完成了二级下拉菜单的设置,可以自己验证一下选项的正确性。
关于INDIRECT函数:
这个函数是一个引用函数,简单来说是按照指定的地址进行引用,在本例中,A14是一个省份的名称,同时在名称管理器有一组对应的市,如图所示:
三、建立三级下拉菜单
操作要点:
【批量定义名称】与前一步一样,选中包含市和区所在的单元格区域,即“F1:K17”。使用“根据所选内容创建”功能批量定义名称,注意在创建时只勾选“最左列”;
【复制有效性设置】复制二级下拉菜单所在的单元格,在需要设置三级下拉菜单的单元格处,选择性粘贴“验证”即可完成设置,操作步骤如动画所示。
因为在二级菜单所在单元格的有效性公式中使用了相对引用,因此直接复制粘贴单元格B14即可。
如果要进行有效性设置的话,来源应该输入“=INDIRECT(B14)”。
怎么样,三级菜单的设置也并没有那么难吧。
小结:今天分享的只是一个最基本的多级菜单设置方法,需要注意几个地方。
1. 设置多级菜单时,下拉数据源的构造很关键,在本例中可以看出数据源设置的特点,至于标题在首行还是最左列,可以根据实际需要而定。
2. 这种设置方法的好处在于容易掌握,并且容易拓展,按照同样的方法,再设置四级菜单甚至五级菜单也不是一件难事。但是弊端也很明显,比如当选项的数量不同时,在下拉框中就会就会出现空白选项,而且选项内容增加时还需要修改名称范围,不是很智能。
3. 设置多级菜单的核心就是INDIRECT函数的用法,如果要让下拉菜单更加智能,不包含空白项并且当内容增加时会自动调整,就需要结合OFFSET、MATCH和COUNTA等函数才能实现了,这个需要对公式函数有相当的运用能力才可以做到。