级联菜单是一种常见的计算机菜单格式,其中一个菜单中选定的选项用于确定下一个菜单中哪些选项可用。开发人员将可能的值列表分为两个或多个逻辑级别,每一个级别都显示在一个菜单中,用户可以在做出最终选择之前缩小所有可能选项的范围,从而更快捷的检索到需求的选项。定义读起来枯燥而乏味,不妨想像一下淘宝的收货人地址管理界面,新建一个收货地址的时候,依次选择省、市、区后,就可以精确定位到想要输入的街道名称。这样的菜单展示方式,就是一个典型的级联菜单。
Excel中的级联菜单
级联菜单可以有效减少用户的输入,同时在原始数据无误的前提下,也确保了最终数据的内容准确性与格式上的一致性。在Excel中,我们可以通过以下的流程来轻松建立一个级联菜单:
新建一个Excel文件,在Sheet2内输入上图中的内容,表中前两行表头部分仅为注释数据的用途,以方便后期的扩充与管理。级联菜单的内容一般只做为后台数据,不需要展示在页面上,这里将Sheet2做为后台数据的存放区域。选中表格的A3:A6,点击菜单项中的“名称管理器”,该功能的快捷键为“Ctrl+F3”,在“名称管理器”窗口点击“新建”按钮,然后在弹出的新窗口内将“名称”一行修改为“省份”。依次选择B3:B6、C3:C6、D3:D6,以同样的操作分别将它们命名为:江苏、浙江、安徽。需要注意的是,这里的命名需要同A3:A6表格中的名称一致。现在我们有了4个自定义名称的数据组合,在名称管理器中显示如下:
返回表一,选择任意准备安放级联菜单的单元格,这里我们以单元格A1作为起始单元格,也就是存放省份数据的单元格。选中A1,依次点击菜单项“数据”、“数据有效性”,弹出数据有效性设置窗口。将有效性的允许栏改为“序列”,然后在来源栏内填入“=省份”,这里的等号必须是英文符号。
如果光标停留在单元格A1的话,可以看到A1后面出现了一个下拉箭头,点击下拉箭头就可以选取省份数据了。我们接下来将B1作为A1的下级菜单,选中B1,同样为其设置数据有效性,将有效性的允许栏也改为“序列”,来源这里就不能直接输入我们定义的名称了,我们需要将来源定义为“=INDIRECT($A$1)”,以便根据A1的值来最终确认二级菜单内容。由于现在A1单元格内可能没有数据,点击确认后如果弹窗警告,直接点“是”继续。
现在就可以点击菜单试试效果啦!上例中我们实现了一个二级的菜单,如果需要设计一个三级的菜单,那么最后一层的数据来源应继续设置为“=INDIRECT($B$1)”,即根据B1的值来确认三级菜单的内容。示例中为了简单明了,在利用“名称管理器”命名时仅选取了少量的单元格,实际应用中,为避免后期需要扩充数据,可以多预留一些空间。比如命名省份时,可以框选A3:A60作为命名对象,以确保有足够的空间存放数据。在本例中,如果需要将省份扩展为10个,则需要在“名称管理器”中先删除已经命名好的名称,选择正确范围后重新命名。